From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B2B24394E86 for ; Tue, 12 May 2026 13:47:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778593674; cv=none; b=LuFipeKJoFITAm7RE5CCxmRrCZbfp2AhwKWrgCjMKGMJJfryKGE65XoSB9NZFit8Xh+t8nLSo8Ys/isUsaLe8COZo3263/XUHMgcwT1TbWVe6aeun7uPqB0thghexMN0LMOFMB3we8Zo8LSEvsoa7DtKo7dG5n4UwRzHfyc1TBk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778593674; c=relaxed/simple; bh=AHvaIjAEownr1UuDMvzjOHmJ1x9P7IhUK8cJvIHHPdU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=gQBk+DkLLuaof7h+wgaica+3urGA7G1HCkhMliggZvC5m+mQRA7NOCJB/+teaZ6MNNRwBVBfY8MpnKr3cuCOsn+RcPsLRuxqj1iCRlZ2F0Al+u8cb3UMQGie/RKE9aGdy97nEKy7eCyRSKYBNYXCCsQ3Yg2cNIAw1GiJeA6Yxsk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=fA075xUC; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="fA075xUC" Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DFA811691 for ; Tue, 12 May 2026 06:47:46 -0700 (PDT) Received: from [192.168.0.1] (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DD8363F85F for ; Tue, 12 May 2026 06:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1778593672; bh=AHvaIjAEownr1UuDMvzjOHmJ1x9P7IhUK8cJvIHHPdU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fA075xUCZdfSFKI+qoC7l0oN9GQQSlOKR8vGlfmY/LxRkm6E+6sPfcYBpQafNOstk R61OmErtUigzJ7peimClA+0hdcqQoC0BHW/newmYC8tgGRXJPeTy6a1YSxTGbQv5jT 9i4VaLQF9ab4fS2DgcC+/p/ya0XaULisUVeSybnk= Date: Tue, 12 May 2026 14:47:27 +0100 From: Liviu Dudau To: Boris Brezillon Cc: Marcin =?utf-8?Q?=C5=9Alusarz?= , Ketil Johnsen , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet , Shuah Khan , Sumit Semwal , Benjamin Gaignard , Brian Starkey , John Stultz , "T.J. Mercier" , Christian =?utf-8?B?S8O2bmln?= , Steven Price , Daniel Almeida , Alice Ryhl , Matthias Brugger , AngeloGioacchino Del Regno , dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Florent Tomasin , nd@arm.com Subject: Re: [PATCH 4/8] drm/panthor: Add support for protected memory allocation in panthor Message-ID: References: <20260505140516.1372388-1-ketil.johnsen@arm.com> <20260505140516.1372388-5-ketil.johnsen@arm.com> <20260505181523.49a3d85c@fedora> <20260507135356.5428d50d@fedora> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260507135356.5428d50d@fedora> On Thu, May 07, 2026 at 01:53:56PM +0200, Boris Brezillon wrote: > On Thu, 7 May 2026 11:02:26 +0200 > Marcin Ślusarz wrote: > > > On Tue, May 05, 2026 at 06:15:23PM +0200, Boris Brezillon wrote: > > > > @@ -277,9 +286,21 @@ int panthor_device_init(struct panthor_device *ptdev) > > > > return ret; > > > > } > > > > > > > > + /* If a protected heap name is specified but not found, defer the probe until created */ > > > > + if (protected_heap_name && strlen(protected_heap_name)) { > > > > > > Do we really need this strlen() > 0? Won't dma_heap_find() fail is the > > > name is "" already? > > > > If dma_heap_find() will fail, then the whole probe with fail too. > > This check prevents that. > > Yeah, that's also a questionable design choice. I mean, we can > currently probe and boot the FW even though we never setup the > protected FW sections, so why should we defer the probe here? Can't we > just retry the next time a group with the protected bit is created and > fail if we can find a protected heap? The problem we have with the current firmware is that it does a number of setup steps at "boot" time only. One of the steps is preparing its internal structures for when it enters protected mode and it stores them in the buffer passed in at firmware loading. We cannot later run the process when we have a group with protected mode set. So unfortunately adding support for protected mode where the heap name is provided means we have to try our best to set it up at boot time, or otherwise disable protected mode support. Best regards, Liviu > > > I'm not sure why it's needed at all, but if > > it is really needed, then s/strlen(protected_heap_name)/protected_heap_name[0]/ > > would simplify this. > > It's not so much about how you do the test, and more about the case > you're trying to protect against. I guess here you assume that > panthor.protected_heap_name="" means "I don't have a protected heap for > you". If it's deemed acceptable, this should most certainly be > described somewhere. > > > > > > > + ptdev->protm.heap = dma_heap_find(protected_heap_name); > > > > + if (!ptdev->protm.heap) { > > > > + drm_warn(&ptdev->base, > > > > + "Protected heap \'%s\' not (yet) available - deferring probe", > > > > + protected_heap_name); > > > > + ret = -EPROBE_DEFER; > > > > + goto err_rpm_put; > > > > > > If you move the heap retrieval before the rpm enablement, you can get > > > rid of this goto err_rpm_put. > > > > > > > + } > > > > + } > > > > + > > > > ret = panthor_hw_init(ptdev); > > > > if (ret) > > > > - goto err_rpm_put; > > > > + goto err_dma_heap_put; > > > > > > > > ret = panthor_pwr_init(ptdev); > > > > if (ret) > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯