1. 15 Jul, 2024 1 commit
  2. 10 Jul, 2024 1 commit
    • Thomas Zimmermann's avatar
      drm/qxl: Pin buffer objects for internal mappings · c537fb4e
      Thomas Zimmermann authored
      Add qxl_bo_pin_and_vmap() that pins and vmaps a buffer object in one
      step. Update callers of the regular qxl_bo_vmap(). Fixes a bug where
      qxl accesses an unpinned buffer object while it is being moved; such
      as with the monitor-description BO. An typical error is shown below.
      
      [    4.303586] [drm:drm_atomic_helper_commit_planes] *ERROR* head 1 wrong: 65376256x16777216+0+0
      [    4.586883] [drm:drm_atomic_helper_commit_planes] *ERROR* head 1 wrong: 65376256x16777216+0+0
      [    4.904036] [drm:drm_atomic_helper_commit_planes] *ERROR* head 1 wrong: 65335296x16777216+0+0
      [    5.374347] [drm:qxl_release_from_id_locked] *ERROR* failed to find id in release_idr
      
      Commit b33651a5 ("drm/qxl: Do not pin buffer objects for vmap")
      removed the implicit pin operation from qxl's vmap code. This is the
      correct behavior for GEM and PRIME interfaces, but the pin is still
      needed for qxl internal operation.
      
      Also add a corresponding function qxl_bo_vunmap_and_unpin() and remove
      the old qxl_bo_vmap() helpers.
      
      Future directions: BOs should not be pinned or vmapped unnecessarily.
      The pin-and-vmap operation should be removed from the driver and a
      temporary mapping should be established with a vmap_local-like helper.
      See the client helper drm_client_buffer_vmap_local() for semantics.
      
      v2:
      - unreserve BO on errors in qxl_bo_pin_and_vmap() (Dmitry)
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Fixes: b33651a5 ("drm/qxl: Do not pin buffer objects for vmap")
      Reported-by: default avatarDavid Kaplan <david.kaplan@amd.com>
      Closes: https://lore.kernel.org/dri-devel/ab0fb17d-0f96-4ee6-8b21-65d02bb02655@suse.de/Tested-by: default avatarDavid Kaplan <david.kaplan@amd.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Zack Rusin <zack.rusin@broadcom.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: virtualization@lists.linux.dev
      Cc: spice-devel@lists.freedesktop.org
      Reviewed-by: default avatarDmitry Osipenko <dmitry.osipenko@collabora.com>
      Reviewed-by: default avatarZack Rusin <zack.rusin@broadcom.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240708142208.194361-1-tzimmermann@suse.de
      c537fb4e
  3. 09 Jul, 2024 1 commit
  4. 08 Jul, 2024 1 commit
  5. 04 Jul, 2024 2 commits
  6. 03 Jul, 2024 15 commits
  7. 01 Jul, 2024 1 commit
  8. 30 Jun, 2024 1 commit
  9. 28 Jun, 2024 12 commits
  10. 27 Jun, 2024 5 commits