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 07BD22ED84A for ; Thu, 16 Jul 2026 11:00:22 +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=1784199624; cv=pass; b=VC/kKxFr2WJPQ85i2HCVqo5D6pfR2WgHHk03hL7i4jPPhu1D+5Nhzzm8IwWW1nM74oC3B48txul/SJJR5IeFbrQUoAZpOdIXj/CM/cG1zC7gpkBxrauS6SU7fzR8hO1JuzW6fh+hgzA/nKEtnlg0maALJAFzRKezKd159HjC9fQ= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784199624; c=relaxed/simple; bh=g6iYG9gUXftaIQCL5yvutmIR4k058RxzzT+TJjch1ok=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=C7Ssi1gy1TdD/A0rUjWbsUi5OpB11BUmaHp+Opo1VvL9cbZOCy0s791DDaJX/IAY68VuKnpQrHvVsLKXejvMa7Po2Bcg+mh70oq0IYosjYaKzuwEDXcamq9OJf7JqLMr2FLQeYrIO08e70HbY7qkgtgyMGC/B97La9RPQ2wu5+w= 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=bTtO2NTd; 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="bTtO2NTd" ARC-Seal: i=1; a=rsa-sha256; t=1784199602; cv=none; d=zohomail.com; s=zohoarc; b=IT0xARpCdXwPC3fM9ynbORQcECKmvzd3y3yhZfgKzBulx0B3WSpq8FaXvyz4XjP87rY2CfCfQ4KeXrggMPKNNxm9q/m7oNI92rZZL4fczq1cfWcxHSFQdFBwsrIBjAOi55AYIopggyiuvJp2n1RJ6xNW6zLFichHWaAXTZfNobI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784199602; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=Kz3BQ98o67H7tR9dTpm4zDNXU3HjViusz9OfQjQItlY=; b=SdPRqkCKBCQ0WxANHQF0mypTMH90B6z4zxefVHbODQzR3m96Y5dx9kW4BqXLVR/kHnmF+yjCr//RpUShjabaXmnIm7axRKRAebhYDLg5/f2gDvdUSWRZgEF0OryxltkRJfpQnbLI1XieV5HWokVyGrZpsH08tg7JVKJD3GQyU0Q= 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=1784199602; s=zohomail; d=collabora.com; i=adrian.larumbe@collabora.com; h=Date:Date:From:From:To:To:Cc:Cc:Subject:Subject:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:Message-Id:Reply-To; bh=Kz3BQ98o67H7tR9dTpm4zDNXU3HjViusz9OfQjQItlY=; b=bTtO2NTd2vve+N3M4aZDIBMForJ45b1q8S/8fwBpokivS25ilwXeB713l6HLsvJ4 rERa/jgMSKY6wJX7E/wNIbkynbO2/Kq8szz6KneHGWGloxKU/D6RQ920bkuOazZ6zf9 kZ5fSG2w3GmqJMQhJHIi6qwR7koaoOpf6tAK7y1s= Received: by mx.zohomail.com with SMTPS id 1784199600205710.3550584601786; Thu, 16 Jul 2026 04:00:00 -0700 (PDT) Date: Thu, 16 Jul 2026 11:59:55 +0100 From: =?utf-8?Q?Adri=C3=A1n?= Larumbe To: Steven Price Cc: 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 Subject: Re: [PATCH v5 1/2] drm/panthor: Add vm_bind region with kbo range overlap check Message-ID: References: <20260713-vm_bind_checks-v5-0-0d2314af8d9d@collabora.com> <20260713-vm_bind_checks-v5-1-0d2314af8d9d@collabora.com> 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: On 16.07.2026 10:27, Steven Price wrote: > On 13/07/2026 09:48, 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. > > > > The new check also makes sure vm_bind range doesn't overflow the size of a > > 64-bit unsigned integer. That was already being done further down the call > > stack inside drm_gpuvm_sm_map -> drm_gpuvm_range_valid, but it's best to > > fail early in the driver before GPUVM functions are invoked so that we > > won't waste time allocating vm_bind context resources. > > > > Fixes: tag and reference the relevant sparse binding support commit. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Can you dig out the relevant commit ;) Oops. Will do. > > Fixes: 647810ec2476 ("drm/panthor: Add the MMU/VM logical block") > > Reviewed-by: Boris Brezillon > > Signed-off-by: Adrián Larumbe > > Reviewed-by: Steven Price > > Thanks, > Steve > > > --- > > 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 31cc57029c12..910c8e579770 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; > > @@ -2981,6 +2986,10 @@ panthor_vm_bind_prepare_op_ctx(struct drm_file *file, > > if (!IS_ALIGNED(op->va | op->size | op->bo_offset, vm_pgsz)) > > return -EINVAL; > > > > + /* We don't allow mappings that overlap with kbo's reserved range */ > > + if (range_overflows(op->va, op->size, vm->user_va_range)) > > + return -EINVAL; > > + > > switch (op->flags & DRM_PANTHOR_VM_BIND_OP_TYPE_MASK) { > > case DRM_PANTHOR_VM_BIND_OP_TYPE_MAP: > > if (!(op->flags & DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE)) { > > Adrian Larumbe