[PATCH] drm/vmwgfx: Stop using dev_private to store driver data.

2024-05-01 Thread Maaz Mombasawala
vmw_private, so switch to using that exclusively and stop using dev_private. Signed-off-by: Maaz Mombasawala --- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 -- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions

Re: [PATCH] drm/vmwgfx: Fix invalid reads in fence signaled events

2024-04-25 Thread Maaz Mombasawala
t_fence_action_create(struct drm_file > *file_priv, > } > > event->event.base.type = DRM_VMW_EVENT_FENCE_SIGNALED; > - event->event.base.length = sizeof(*event); > + event->event.base.length = sizeof(event->event); > event->event.user_dat

Re: [PATCH 1/5] drm/vmwgfx: Implement virtual kms

2024-04-05 Thread Maaz Mombasawala
dev->mode_config.suggested_x_property, 0); > drm_object_attach_property(>base, > dev->mode_config.suggested_y_property, 0); > + > + vmw_du_init(>base); > + > return 0; > > err_free_unregister: Shouldn't calls to vmw_du_init() be behind an if(vkms_enabled) condition? Thanks, Maaz Mombasawala

Re: [PATCH] drm/vmwgfx: Fix possible null pointer derefence with invalid contexts

2024-01-10 Thread Maaz Mombasawala
er it. > Niels De Graef who reported it and helped to track down the poc. > > Fixes: 9c079b8ce8bf ("drm/vmwgfx: Adapt execbuf to the new validation api") > Cc: # v4.20+ > Reported-by: Niels De Graef > Signed-off-by: Zack Rusin > Cc: Martin Krastev > Cc: Maaz Mom

Re: [PATCH] drm/vmwgfx: Unmap the surface before resetting it on a plane state

2024-01-03 Thread Maaz Mombasawala
0 > FS: 7f1e8f1b4180() GS:969e75f0() knlGS: > CS: 0010 DS: ES: CR0: 80050033 > CR2: 0028 CR3: 000104006004 CR4: 003706f0 > > Signed-off-by: Zack Rusin > Fixes: 485d98d472d5 ("drm/vmwgfx: Add supp

[PATCH 2/2] drm/vmwgfx: Add SPDX header to vmwgfx_drm.h

2023-10-09 Thread Maaz Mombasawala (VMware)
From: Maaz Mombasawala Update vmwgfx_drm.h with SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT Signed-off-by: Maaz Mombasawala Reviewed-by: Martin Krastev Signed-off-by: Maaz Mombasawala (VMware) --- include/uapi/drm/vmwgfx_drm.h | 1 + 1 file changed, 1 insertion

[PATCH 1/2] drm/vmwgfx: Make all surfaces shareable

2023-10-09 Thread Maaz Mombasawala (VMware)
From: Maaz Mombasawala There is no real need to have a separate pool for shareable and non-shareable surfaces. Make all surfaces shareable, regardless of whether the drm_vmw_surface_flag_shareable has been specified. Signed-off-by: Maaz Mombasawala Reviewed-by: Martin Krastev Signed-off

Re: [PATCH] drm/vmwgfx: Fix possible invalid drm gem put calls

2023-08-23 Thread Maaz Mombasawala (VMWare)
LGTM! Reviewed-by: Maaz Mombasawala Maaz Mombasawala (VMware) On 8/17/2023 9:13 PM, Zack Rusin wrote: From: Zack Rusin vmw_bo_unreference sets the input buffer to null on exit, resulting in null ptr deref's on the subsequent drm gem put calls. This went unnoticed because only very old

Re: [PATCH] drm/vmwgfx: Fix shader stage validation

2023-06-16 Thread Maaz Mombasawala (VMWare)
LGTM. Reviewed-by: Maaz Mombasawala Maaz Mombasawala (VMware) On 6/16/2023 12:09 PM, Zack Rusin wrote: From: Zack Rusin For multiple commands the driver was not correctly validating the shader stages resulting in possible kernel oopses. The validation code was only. if ever, checking

Re: [PATCH 2/3] drm/vmwgfx: Print errors when running on broken/unsupported configs

2023-03-21 Thread "Maaz Mombasawala (VMware)
char *fmt, ...); > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c > index ca1a3fe44fa5..2651fe0ef518 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c > @@ -1179,3 +1179,12 @@ int vmw_mksstat_remove_ioctl(struct drm_device *dev, > void *data, > > return -EAGAIN; > } > + > +/** > + * vmw_disable_backdoor: Disables all backdoor communication > + * with the hypervisor. > + */ > +void vmw_disable_backdoor(void) > +{ > + vmw_msg_enabled = 0; > +} LGTM Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH] drm/vmwgfx: Stop accessing buffer objects which failed init

2023-02-08 Thread "Maaz Mombasawala (VMware)
ate(dev_priv, , p_vbo); > - > - (*p_vbo)->tbo.base.funcs = _gem_object_funcs; > if (ret != 0) > goto out_no_bo; > > + (*p_vbo)->tbo.base.funcs = _gem_object_funcs; > + > ret = drm_gem_handle_create(filp, &(*p_vbo)->tbo.base, handle); > /* drop reference from allocate - handle holds it now */ > drm_gem_object_put(&(*p_vbo)->tbo.base); LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH] drm/vmwgfx: Do not drop the reference to the handle too soon

2023-02-08 Thread "Maaz Mombasawala (VMware)
_surface_define_ioctl(struct drm_device *dev, void > *data, > goto out_unlock; > } > vmw_bo_reference(res->guest_memory_bo); > - drm_gem_object_get(>guest_memory_bo->tbo.base); > } > > tmp = vmw_resource_reference(>res); LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH v2 8/8] drm/vmwgfx: Stop using raw ttm_buffer_object's

2023-01-31 Thread "Maaz Mombasawala (VMware)
On 1/30/23 19:35, Zack Rusin wrote: > From: Zack Rusin > > Various bits of the driver used raw ttm_buffer_object instead of the > driver specific vmw_bo object. All those places used to duplicate > the mapped bo caching policy of vmw_bo. > > Instead of duplicating all of that code and special

Re: [PATCH v2 7/8] drm/vmwgfx: Abstract placement selection

2023-01-31 Thread "Maaz Mombasawala (VMware)
On 1/30/23 19:35, Zack Rusin wrote: > From: Zack Rusin > > Problem with explicit placement selection in vmwgfx is that by the time > the buffer object needs to be validated the information about which > placement was supposed to be used is lost. To workaround this the driver > had a bunch of

Re: [PATCH v2 6/8] drm/vmwgfx: Rename dummy to is_iomem

2023-01-31 Thread "Maaz Mombasawala (VMware)
> } > > - if (vps->bo && ttm_kmap_obj_virtual(>bo->map, )) { > + if (vps->bo && ttm_kmap_obj_virtual(>bo->map, _iomem)) { > const int ret = ttm_bo_reserve(>bo->base, true, false, > NULL); > > if (likely(ret == 0)) { LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH v2 5/8] drm/vmwgfx: Cleanup the vmw bo usage in the cursor paths

2023-01-31 Thread "Maaz Mombasawala (VMware)
pot_y); > } > > - if (vps->bo) { > - if (ttm_kmap_obj_virtual(>bo->map, )) > - atomic_dec(>bo->base_mapped_count); > - } > - > du->cursor_x = new_state->crtc_x + du->set_gui_x; > du->cursor_y = new_state->crtc_y + du->set_gui_y; > LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH v2 4/8] drm/vmwgfx: Simplify fb pinning

2023-01-31 Thread "Maaz Mombasawala (VMware)
truct vmw_legacy_display_unit *ldu) > { > @@ -145,8 +188,7 @@ static int vmw_ldu_del_active(struct vmw_private > *vmw_priv, > list_del_init(>active); > if (--(ld->num_active) == 0) { > BUG_ON(!ld->fb); > - if (ld->fb->unpin) > - ld->fb->unpin(ld->fb); > + WARN_ON(vmw_ldu_fb_unpin(ld->fb)); > ld->fb = NULL; > } > > @@ -163,11 +205,10 @@ static int vmw_ldu_add_active(struct vmw_private > *vmw_priv, > > BUG_ON(!ld->num_active && ld->fb); > if (vfb != ld->fb) { > - if (ld->fb && ld->fb->unpin) > - ld->fb->unpin(ld->fb); > + if (ld->fb) > + WARN_ON(vmw_ldu_fb_unpin(ld->fb)); > vmw_svga_enable(vmw_priv); > - if (vfb->pin) > - vfb->pin(vfb); > + WARN_ON(vmw_ldu_fb_pin(vfb)); > ld->fb = vfb; > } > LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH v2 3/8] drm/vmwgfx: Rename vmw_buffer_object to vmw_bo

2023-01-31 Thread "Maaz Mombasawala (VMware)
On 1/30/23 19:35, Zack Rusin wrote: > From: Zack Rusin > > The rest of the drivers which are using ttm have mostly standardized on > driver_prefix_bo as the name for subclasses of the TTM buffer object. > Make vmwgfx match the rest of the drivers and follow the same naming > semantics. > > This

Re: [PATCH v2 2/8] drm/vmwgfx: Remove the duplicate bo_free function

2023-01-31 Thread "Maaz Mombasawala (VMware)
fx/vmwgfx_scrn.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c > @@ -445,7 +445,7 @@ vmw_sou_primary_plane_prepare_fb(struct drm_plane *plane, > vmw_overlay_pause_all(dev_priv); > ret = vmw_bo_create(dev_priv, size, > _vram_placement, > - false, true, _bo_bo_free, >bo); > + false, true, >bo); > vmw_overlay_resume_all(dev_priv); > if (ret) { > vps->bo = NULL; /* vmw_bo_init frees on error */ > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c > index 108a496b5d18..93b1400aed4a 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c > @@ -893,7 +893,7 @@ int vmw_compat_shader_add(struct vmw_private *dev_priv, > return -EINVAL; > > ret = vmw_bo_create(dev_priv, size, _sys_placement, > - true, true, vmw_bo_bo_free, ); > + true, true, ); > if (unlikely(ret != 0)) > goto out; > LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH v2 1/8] drm/vmwgfx: Use the common gem mmap instead of the custom code

2023-01-31 Thread "Maaz Mombasawala (VMware)
; > - > - if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET_START)) > - return -EINVAL; > - > - ret = vmw_bo_vm_lookup(bdev, file_priv, vma->vm_pgoff, vma_pages(vma), > ); > - if (unlikely(ret != 0)) > - return ret; > - > - ret = ttm_bo_mmap_obj(vma, bo); > - if (unlikely(ret != 0)) > - goto out_unref; > - > - vma->vm_ops = _vm_ops; > - > - /* Use VM_PFNMAP rather than VM_MIXEDMAP if not a COW mapping */ > - if (!is_cow_mapping(vma->vm_flags)) > - vma->vm_flags = (vma->vm_flags & ~VM_MIXEDMAP) | VM_PFNMAP; > - > - ttm_bo_put(bo); /* release extra ref taken by ttm_bo_mmap_obj() */ > - > - return 0; > - > -out_unref: > - ttm_bo_put(bo); > - return ret; > -} > - LGTM! Reviewed-by: Maaz Mombasawala -- Maaz Mombasawala (VMware)

Re: [PATCH] drm/vmwgfx: Remove rcu locks from user resources

2022-12-07 Thread &quot;Maaz Mombasawala (VMware)
LGTM. Reviewed-by: Maaz Mombasawala On 12/7/22 09:29, Zack Rusin wrote: > From: Zack Rusin > > User resource lookups used rcu to avoid two extra atomics. Unfortunately > the rcu paths were buggy and it was easy to make the driver crash by > submitting command buffers fro

Re: [PATCH] drm/vmwgfx: Don't use screen objects when SEV is active

2022-12-01 Thread &quot;Maaz Mombasawala (VMware)
device *dev = _priv->drm; > int i; > > + /* Screen objects won't work if GMR's aren't available */ > + if (!dev_priv->has_gmr) > + return -ENOSYS; > + > if (!(dev_priv->capabilities & SVGA_CAP_SCREEN_OBJECT_2)) { > return -ENOSYS; > } LGTM -- Maaz Mombasawala (VMware)

Re: [PATCH v3 17/17] drm/vmwgfx: Fix a sparse warning in kernel docs

2022-10-21 Thread &quot;Maaz Mombasawala (VMware)
on copies fence information to user-space. If copying fails, > the > * user-space struct drm_vmw_fence_rep::error member is hopefully left -- Looks good. Reviewed-by: Maaz Mombasawala Maaz Mombasawala (VMware)