Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp5774740ioo; Wed, 1 Jun 2022 12:18:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyphX5elEKB6/gRPId5m8J733gimryrYYWBbxTt5eLwNCeBCXHmA4ovHE5mWO+5A8Cz3+yh X-Received: by 2002:a05:6a00:15c2:b0:518:9911:4952 with SMTP id o2-20020a056a0015c200b0051899114952mr1104568pfu.64.1654111092985; Wed, 01 Jun 2022 12:18:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654111092; cv=none; d=google.com; s=arc-20160816; b=lBkv0a6xK4mC3hJ9tzKOqVVGsa+XEmp1pie9ozFeTyTIKbZVP9tvrMyoJV7COfdKD5 pAvLvvL1tfInjAOV2m1yj1hYS2v5U+U5myCPW5XYPR6EDUCbHE5hgknHm0fhwQbK8bP6 o58pp7kuXjkX/p6lwYPfUUC0g6dN7IFkO1OIcJcMRzxfopDJQQFdSdP6gdKrlH+p7v2s 8M8Y+sml5he5ZSSZUYV2xkS7M7afiJ0rZhsvPBXwU/55nHZk7IjtZXq0q4EW7PpmTJQE Yuyo4jecWfQ5Ydo4kXXY+qZG87k/0YEQsPIO8BGI2dR8VgRJ7/YnwHrbcX5/Rm0G1dU7 s9FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=g032hv3Sc3pCJgb3XwOblrDCKMp3yXsIlazDM7QXhd0=; b=xEV/y1Q3eMJI0nu7wgN7TaJ15OISi0TbE3cdkZE37gKu7gBxt0E7KKqvwxUU5DFRDj zUiBUmia9svXB+Pttbr8vzkPWd0uGXpnB35mJgOG+pcWDCxaISzvPiHZUqKtxOWHRdBz s/UvZgRcnxqOTzBfHvlWA6zqSLZLV3VR/JD0uMnM4j/sIfYJjkWSyL3bQprYjcekxX81 LWNnzh8I18RyM0lN3IkPYFbTbqZVZsQs6OOBuVhJH/LYZnZoUzq4O4mzJGZKb5fEuqnc XKM6PedAvLqm80jgkWf8EQl+OQ1pu8Z+WgUnaxLCM/qQRVM0NSQZ8F7xgH3H7pYe2hLf f3UQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id 127-20020a630285000000b003fae815a769si2722210pgc.737.2022.06.01.12.18.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jun 2022 12:18:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C570D152B86; Wed, 1 Jun 2022 11:54:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239054AbiE3QLq (ORCPT + 99 others); Mon, 30 May 2022 12:11:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231636AbiE3QLn (ORCPT ); Mon, 30 May 2022 12:11:43 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 112C83A5F3; Mon, 30 May 2022 09:11:41 -0700 (PDT) Received: from mail-yw1-f176.google.com ([209.85.128.176]) by mrelayeu.kundenserver.de (mreue009 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MxDgm-1nbiC331j6-00xXYP; Mon, 30 May 2022 18:11:39 +0200 Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-30c2f288f13so39766167b3.7; Mon, 30 May 2022 09:11:39 -0700 (PDT) X-Gm-Message-State: AOAM531ISlRInc2Xwuxpy8R3BNV/MMpjTlU4b12H4/BovxC+/vUkvhZ7 y5MJgOK5XqhP2IaLHBj1iwAwesNehFETh9XuFOo= X-Received: by 2002:a81:28b:0:b0:30c:5e57:fac3 with SMTP id 133-20020a81028b000000b0030c5e57fac3mr4506381ywc.249.1653927098209; Mon, 30 May 2022 09:11:38 -0700 (PDT) MIME-Version: 1.0 References: <1652248625-990-1-git-send-email-quic_sibis@quicinc.com> In-Reply-To: <1652248625-990-1-git-send-email-quic_sibis@quicinc.com> From: Arnd Bergmann Date: Mon, 30 May 2022 18:11:21 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] remoteproc: qcom_q6v5_mss: map/unmap metadata region before/after use To: Sibi Sankar Cc: bjorn.andersson@linaro.org, arnd@arndb.de, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, sboyd@kernel.org, agross@kernel.org, linux-remoteproc@vger.kernel.org, mathieu.poirier@linaro.org, mka@chromium.org Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:HjsYA+nrojhCIllRkh3gdovi3Qg5wl0dW0CKHI0r/POmXLGGqhi 7kgE6qEs+iFxMAZ1F301SkzE4kkctb9K5tqCl3/85/crUk0LI285LW7ZSJTv47601yNsabx UVQieCq94RBDD2OK2iLvT24SLE2byxsEFLic0EsUI0RYFztiGLpML851GgDxhPthqfpl1ip UgC1fx1MHKEILUOdUTsFg== X-UI-Out-Filterresults: notjunk:1;V03:K0:w02Pzz3C5XQ=:vZ/x27lMmOlXjpUFhvk6hg /XJmrkyPjDqFk8UZjreOELRjvweTubirPAYkp0amL8wgOOCb0KZpYV9WkvTOHDUgH7BpGKr93 dqYINIfKoOiVjndt51yQF0mskNhL5gwfnZKDE57UlX8V1advBV/ETkrb7lisxy4K7T2vLR0zx s/jvBsP1gA3wI6geloszXKPi9oynrKEMzdtjS3TSWsqKZWBfZq+0/37+sxziDz+832RMLfpz8 Et06EhTzU+3mk495BKrJVHfkbBadgvCnbD2Tr4Q/0qJKvKdEhJ2zwMA14kMDDcJjQpt21ZRyc YuAGvZMsV52Vaj7/QxyTFZD9/VBxwrZTqEZIOaD9erpe3tytl73QCNKdQsSfi8wU/n2C8jz1W 9DwG9FW6K8ZTB3QH0teKoQBK8cSXY38ftQw/m0fCyicvsm+mFiuvHP9fnnclgcfvq8ERZSjIV RYzraigs7bdIF8UxhbAXA5TbkE+LtIXwONMFVnZ8+ZFBmDHp4q/6P4skXwf2Vo4T1UO0Im0Zl ttzlLgjq5g1+1oaCUfJEXgVteKbVKmAClFqkN5vJ7oO+WvYyr6jbTsFuFIt2r3t3QSwRwpmlg /2E8nDmgKZXhCj5afsDRDsaCPSHJNmsfFzUBkKpvfnciej4hHPkccmS2ccH9Q6nVogh+zYoRh zbN9nhQGSQNcB+elKheXPbaPHtspc/nAUMWerAjjAxlJ8PuoLqhB1C9sxPj6fcnGP6Pr12YJo Usb6z+B+Zekj3WE1RpqHO4zMFvQGAGFKi256GrFE04vMiQKh6k3pSlLwsmQ6RvgstPKHjNRDR OaZa+JzvwebQrAHwlm6XipVsVeccn8HgsaH74ITKnF/gaQbNHflCQmPxRfAZixta9IVROHJvV 9OTqOKhZ6MYKsmXMmZUA== X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 11, 2022 at 7:57 AM Sibi Sankar wrote: > > The application processor accessing the dynamically assigned metadata > region after assigning it to the remote Q6 would lead to an XPU violation. > Fix this by un-mapping the metadata region post firmware header copy. The > metadata region is freed only after the modem Q6 is done with fw header > authentication. > > Signed-off-by: Sibi Sankar Acked-by: Arnd Bergmann Sorry for the late reply, this looks reasonable overall. Just two small comments: > > - memcpy(ptr, metadata, size); > + count = PAGE_ALIGN(size) >> PAGE_SHIFT; > + pages = kmalloc_array(count, sizeof(struct page *), GFP_KERNEL); > + if (!pages) { > + ret = -ENOMEM; > + goto free_dma_attrs; > + } If you know a fixed upper bound for the array size, it might be easier to put it on the stack. > + > + for (i = 0; i < count; i++) > + pages[i] = nth_page(page, i); > + > + vaddr = vmap(pages, count, flags, pgprot_dmacoherent(PAGE_KERNEL)); I was a bit unsure about this part, as I don't know how portable this is. If the CPU bypasses the cache with pgprot_dmacoherent(), then the other side should not use a cacheable access either, but that is a property of the hardware that is normally hidden from the driver interface. It's probably ok here, since the pages are not mapped anywhere else and should have no active cache lines. Arnd