Re: [RFC PATCH v9 3/4] drm/virtio: implement userptr resource support

From: Huang, Honglei

Date: Sat Oct 10 2026 - 03:38:31 EST




On 10/10/2026 2:53 AM, Dmitry Osipenko wrote:
24.09.2026 12:55, Honglei Huang пишет:
+int virtio_gpu_userptr_create(struct virtio_gpu_device *vgdev,
+ struct drm_file *file,
+ struct virtio_gpu_object_params *params,
+ struct virtio_gpu_object **bo_ptr)
+{
+ struct virtio_gpu_object_userptr *userptr;
+ struct virtio_gpu_mem_entry *ents = NULL;
+ struct sg_table *sgt;
+ struct mm_struct *mm;
+ unsigned long lock_limit;
+ unsigned long start;
+ unsigned long end;
+ s64 new_pinned;
+ unsigned int nents;
+ int ret;
+
+ *bo_ptr = NULL;
+
+ if (!params->size || !IS_ALIGNED(params->size, PAGE_SIZE) ||
+ params->userptr != (unsigned long)params->userptr)
+ return -EINVAL;
+
+ start = params->userptr;
+ if (!IS_ALIGNED(start, PAGE_SIZE) ||
+ check_add_overflow(start, (unsigned long)params->size, &end))
+ return -EINVAL;

There is new vgdev->blob_alignment defining host page size as it may
differ from guest's page. Will be good to validate both.


Will add blob_alignment check in next version, thanks for the review.

Regards,
Honglei