Skip to content

Commit 68ce556

Browse files
committed
drm/vmwgfx: Fix the lockdep breakage
Thomas has noticed that the lockdep was broken in vmwgfx. It was broken during the pci initialization rework. This fixes the breakage by making sure we initialize the locking code before doing anything else. This was independently spotted and fixed by Tetsuo Handa as well. Reviewed-by: Martin Krastev <krastevm@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Zack Rusin <zackr@vmware.com> Fixes: 8772c0b ("drm/vmwgfx: Cleanup pci resource allocation") Link: https://patchwork.freedesktop.org/patch/msgid/20210408172245.673785-1-zackr@vmware.com
1 parent ab4d991 commit 68ce556

2 files changed

Lines changed: 8 additions & 11 deletions

File tree

drivers/gpu/drm/vmwgfx/vmwgfx_drv.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -712,24 +712,23 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
712712
dev_priv->last_read_seqno = (uint32_t) -100;
713713
dev_priv->drm.dev_private = dev_priv;
714714

715-
ret = vmw_setup_pci_resources(dev_priv, pci_id);
716-
if (ret)
717-
return ret;
718-
ret = vmw_detect_version(dev_priv);
719-
if (ret)
720-
goto out_no_pci_or_version;
721-
722715
mutex_init(&dev_priv->cmdbuf_mutex);
723-
mutex_init(&dev_priv->release_mutex);
724716
mutex_init(&dev_priv->binding_mutex);
725-
mutex_init(&dev_priv->global_kms_state_mutex);
726717
ttm_lock_init(&dev_priv->reservation_sem);
727718
spin_lock_init(&dev_priv->resource_lock);
728719
spin_lock_init(&dev_priv->hw_lock);
729720
spin_lock_init(&dev_priv->waiter_lock);
730721
spin_lock_init(&dev_priv->cap_lock);
731722
spin_lock_init(&dev_priv->cursor_lock);
732723

724+
ret = vmw_setup_pci_resources(dev_priv, pci_id);
725+
if (ret)
726+
return ret;
727+
ret = vmw_detect_version(dev_priv);
728+
if (ret)
729+
goto out_no_pci_or_version;
730+
731+
733732
for (i = vmw_res_context; i < vmw_res_max; ++i) {
734733
idr_init(&dev_priv->res_idr[i]);
735734
INIT_LIST_HEAD(&dev_priv->res_lru[i]);

drivers/gpu/drm/vmwgfx/vmwgfx_drv.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,6 @@ struct vmw_private {
529529
struct vmw_overlay *overlay_priv;
530530
struct drm_property *hotplug_mode_update_property;
531531
struct drm_property *implicit_placement_property;
532-
struct mutex global_kms_state_mutex;
533532
spinlock_t cursor_lock;
534533
struct drm_atomic_state *suspend_state;
535534

@@ -592,7 +591,6 @@ struct vmw_private {
592591
bool refuse_hibernation;
593592
bool suspend_locked;
594593

595-
struct mutex release_mutex;
596594
atomic_t num_fifo_resources;
597595

598596
/*

0 commit comments

Comments
 (0)