> Add userptr blob objects so the guest kernel can pin an existing > userspace mapping and advertise it as CREATE_BLOB backing entries. > > - New virtio_gpu_object_userptr type for userptr resources > - Pin pages with pin_user_pages_fast() and FOLL_LONGTERM > - Omit FOLL_WRITE when VIRTGPU_BLOB_FLAG_USE_READONLY is set > - Charge FOLL_LONGTERM pins against RLIMIT_MEMLOCK > - DMA-map the scatterlist only when virtio_gpu_use_dma_api() is > required; use DMA_TO_DEVICE for USE_READONLY blobs > - Sync userptr SG for the device on TRANSFER_TO_HOST > - Mark writable pages dirty when unpinning > - Keep pages pinned until RESOURCE_UNREF is queued; drop them from > cleanup_object() on the unref response or on create failure > - Clear userptr->pages on pin failure to avoid double-free on cleanup > - Reject unaligned or overflowing userptr ranges at create time > - Disallow PRIME export of userptr objects > - Save CREATE_BLOB params and restore userptr resources after > hibernation without using the shmem restore path > > Signed-off-by: Honglei Huang <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=3
