From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com [136.143.188.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2698F358369 for ; Mon, 13 Jul 2026 08:00:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.11 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783929622; cv=pass; b=SqJbOsmDwxloDMI9C8WQRnlEAvpTGOkLfcpB78R0gszhpfHKAFLXHzk/1Vjnbt9Ogn/5O8zFbOMR2lHOoYpQTLoUIFMhvwwqI/M98IfwA2YcbRHWTTAX+LnL/3fJWYwBpu8BsscqvmX0cAmQW/yew7I2oDCqkkzrVU8eRuQYoBk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783929622; c=relaxed/simple; bh=G/3IQU5ffi9GL8YHbiZvd65QqXKx8/ZI6ANxH9CXCvM=; h=MIME-Version:Content-Type:Subject:From:To:Cc:In-Reply-To: References:Date:Message-Id; b=nGQ9ZA+LAEbCqPy/8r3gOXsTJgLbjcyKtHPt70kQgU5qP8l4maghxAXgipgX9qpNwmgyBTNKeWYaq/w35Wc+x4WLgY2h2XiqQrw6SvWii/wfu05VSKN9biU4yB9qQLXVW+G83g/CgBLVbzI01JaaV5/3hPSvWRKXoIaWdkbWNR4= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=adrian.larumbe@collabora.com header.b=Yrl7oPe+; arc=pass smtp.client-ip=136.143.188.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=adrian.larumbe@collabora.com header.b="Yrl7oPe+" ARC-Seal: i=1; a=rsa-sha256; t=1783929599; cv=none; d=zohomail.com; s=zohoarc; b=beUvZownJKxYbE4vtGmQpdjmF6IAlXKYt5cWyVGQS5zBa5uKkIGD33WNPvv26ph4odNJb1sEPs0KUrt4WjvSwknwPIdiRZdSZiNltu2ALVyHog1QEZHECgFjNUQnAZqH9XrfcZCGH76LhxSQX2b5oy9mbHXJ88AjRgsTptT/NW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783929599; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=CNcuYJ7/HN/F2UVGrdzGY109S9/PBSZE6yzs4AZfUR4=; b=l9B2XvbipT6U5GIvzo+klRyclTsuuePz1aP7vvYOk02MffUIh25JBRKZ15Q5kTjVBIFi/IXPywlBlYY60VTw/foHfNlXTHZUgNfx3NMK3Qr2wvoDUUdWmKyw+IGRyJteLWcXIoLZXogW2GPkMYcczMgp5gsp1ZjwfPBqYoQNeg4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=adrian.larumbe@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1783929599; s=zohomail; d=collabora.com; i=adrian.larumbe@collabora.com; h=MIME-Version:Content-Type:Content-Transfer-Encoding:Subject:Subject:From:From:To:To:Cc:Cc:In-Reply-To:References:Date:Date:Message-Id:Message-Id:Reply-To; bh=CNcuYJ7/HN/F2UVGrdzGY109S9/PBSZE6yzs4AZfUR4=; b=Yrl7oPe+h3rwYp8Dsipk4JXkdyPgM5OJZiPCFfPiGfrFxFbkMS+GBKW9vet+/Qqa 35ZjZcWukcm6Nn4DcXDjxSR1kd/X1KydF/zjboyRaVElT9or7jsfK90F2NgAe68j637 RVzMR6z7AHgj2jDp3P/23TmaGlSJU7jeSQSxN8IQ= Received: by mx.zohomail.com with SMTPS id 1783929598001272.5248757124549; Mon, 13 Jul 2026 00:59:58 -0700 (PDT) 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-Transfer-Encoding: 8bit Subject: Re: [PATCH v4 2/3] drm/panthor: Add vm_bind region with kbo range overlap check From: =?utf-8?q?Adri=C3=A1n_Larumbe?= To: Steven Price Cc: =?utf-8?q?Adri=C3=A1n_Larumbe?= , Boris Brezillon , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heiko Stuebner , Grant Likely , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org In-Reply-To: References: <20260704-vm_bind_checks-v4-0-4705b6ca9f8a@collabora.com> <20260704-vm_bind_checks-v4-2-4705b6ca9f8a@collabora.com> Date: Mon, 13 Jul 2026 08:59:52 +0100 Message-Id: <178392959202.3779593.6197036600693145874.b4-reply@b4> X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2572; i=adrian.larumbe@collabora.com; h=from:subject:message-id; bh=G/3IQU5ffi9GL8YHbiZvd65QqXKx8/ZI6ANxH9CXCvM=; b=owEB7QES/pANAwAKAQ4mfkzuU0M9AcsmYgBqVJr52GS6UCwcEul8uKCiFaoW8fj/va9WR43fp oOeIW+Co/CJAbMEAAEKAB0WIQQyQDDowAUXXfk3B6QOJn5M7lNDPQUCalSa+QAKCRAOJn5M7lND PVoJDACz7QbzeWU0Yn+qlmDLeA1HtsC1EGJRCAVodsT0JLMFip+IMobHVv/wLhpj0pbSakm+/qP tEXgi5hmiFhrZj6AXjnDigNImX/t5n7taFsvmUALPazygIHDakr6lrgWlRj6RAoP2mXd3LILhRu uoaxlJKPFKqlvOtXe+4ljFE6kBmm5mfJAVM+ZANFKsaG+gTfQutxoozrchWXiz1o9K0n/kVeLBW uzdXEt90UUDQsw/7KvEBNmDrkdjTf20/df14ygJt5ROzV8Pi/0krqacuXz62ysf2nVDvJ7hkJFw XychTCsFb5ZcbSi8rr0PJ55aIpQKiG1UGCyQzifTkWByKDa+Jj7DDQ9QJv3MKolmfHrplOHC0qF phHkfW7bvNmp7Uh5g3MimF/DOXM9Dm/QKZ2olQj8hcaBUEqDvGZK6YHqtUCF2Uk3IJ+qT4SDrUh 6/Z99hk/4ZkY2uF5L8I4kIv6Jav/xx2pbRo6fkuC/5OagszryX68uT3rJrFqtNdQ9Pm58= X-Developer-Key: i=adrian.larumbe@collabora.com; a=openpgp; fpr=324030E8C005175DF93707A40E267E4CEE53433D On 2026-07-09 09:25:13+01:00, Steven Price wrote: > On 04/07/2026 05:46, Adrián Larumbe wrote: > > > When a VM is created, caller has to specify the range of the address space > > carve-out set aside for mapping kernel BO's. That means vm_bind mappings of > > UM-exposed BO's should not intersect with that region, but at the moment > > we're not checking this. > > > > At first, I thought of giving these values to drm_gpuvm_init() through its > > reserve_{offset, range} arguments, but it turns out that is meant for VM > > address spans that are not managed through the usual drm_gpuvm split/merge > > circuit, so storing the end of the user VA range at VM creation time and > > doing a quick check in the vm_bind ioctl path was the simplest workaround. > > > > Fixes: tag and reference the relevant sparse binding support commit. > > Fixes: 647810ec2476 ("drm/panthor: Add the MMU/VM logical block") > > Reviewed-by: Boris Brezillon > > Signed-off-by: Adrián Larumbe > > --- > > drivers/gpu/drm/panthor/panthor_mmu.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/drivers/gpu/drm/panthor/panthor_mmu.c b/drivers/gpu/drm/panthor/panthor_mmu.c > > index 163231c1703d..662a2c13b467 100644 > > --- a/drivers/gpu/drm/panthor/panthor_mmu.c > > +++ b/drivers/gpu/drm/panthor/panthor_mmu.c > > @@ -310,6 +310,9 @@ struct panthor_vm { > > u64 end; > > } kernel_auto_va; > > > > + /** @user_va_range: Upper boundary of VAs VM users can map objects against. */ > > + u64 user_va_range; > > + > > /** @as: Address space related fields. */ > > struct { > > /** > > @@ -2893,6 +2896,8 @@ panthor_vm_create(struct panthor_device *ptdev, bool for_mcu, > > va_range = full_va_range; > > } > > > > + vm->user_va_range = kernel_va_start; > > + > > mutex_init(&vm->mm_lock); > > drm_mm_init(&vm->mm, kernel_va_start, kernel_va_size); > > vm->kernel_auto_va.start = auto_kernel_va_start; > > @@ -2985,6 +2990,10 @@ panthor_vm_bind_prepare_op_ctx(struct drm_file *file, > > if (check_add_overflow(op->va, op->size, &end)) > > return -EINVAL; > > > > + /* We don't allow mappings that overlap with kbo's reserved range */ > > + if (end > vm->user_va_range) > > + return -EINVAL; > > + > > Squashing this with the previous patch we can do this in one check: > > if (range_overflows(op->va, op->size, vm->user_va_range)) > return -EINVAL; > > Thanks, > Steve Will do so for the next revision.