Skip to content

Commit b65a648

Browse files
committed
Merge tag 'drm-intel-fixes-2022-11-24' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
- Fix GVT KVM reference count handling (Sean Christopherson) - Never purge busy TTM objects (Matthew Auld) - Fix warn in intel_display_power_*_domain() functions (Imre Deak) Signed-off-by: Dave Airlie <[email protected]> From: Tvrtko Ursulin <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/Y38u44hb1LZfZC+M@tursulin-desk
2 parents 9e2c5c6 + 14af5d3 commit b65a648

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

drivers/gpu/drm/i915/display/intel_display_power.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,7 +2434,7 @@ intel_display_power_ddi_io_domain(struct drm_i915_private *i915, enum port port)
24342434
{
24352435
const struct intel_ddi_port_domains *domains = intel_port_domains_for_port(i915, port);
24362436

2437-
if (drm_WARN_ON(&i915->drm, !domains) || domains->ddi_io == POWER_DOMAIN_INVALID)
2437+
if (drm_WARN_ON(&i915->drm, !domains || domains->ddi_io == POWER_DOMAIN_INVALID))
24382438
return POWER_DOMAIN_PORT_DDI_IO_A;
24392439

24402440
return domains->ddi_io + (int)(port - domains->port_start);
@@ -2445,7 +2445,7 @@ intel_display_power_ddi_lanes_domain(struct drm_i915_private *i915, enum port po
24452445
{
24462446
const struct intel_ddi_port_domains *domains = intel_port_domains_for_port(i915, port);
24472447

2448-
if (drm_WARN_ON(&i915->drm, !domains) || domains->ddi_lanes == POWER_DOMAIN_INVALID)
2448+
if (drm_WARN_ON(&i915->drm, !domains || domains->ddi_lanes == POWER_DOMAIN_INVALID))
24492449
return POWER_DOMAIN_PORT_DDI_LANES_A;
24502450

24512451
return domains->ddi_lanes + (int)(port - domains->port_start);
@@ -2471,7 +2471,7 @@ intel_display_power_legacy_aux_domain(struct drm_i915_private *i915, enum aux_ch
24712471
{
24722472
const struct intel_ddi_port_domains *domains = intel_port_domains_for_aux_ch(i915, aux_ch);
24732473

2474-
if (drm_WARN_ON(&i915->drm, !domains) || domains->aux_legacy_usbc == POWER_DOMAIN_INVALID)
2474+
if (drm_WARN_ON(&i915->drm, !domains || domains->aux_legacy_usbc == POWER_DOMAIN_INVALID))
24752475
return POWER_DOMAIN_AUX_A;
24762476

24772477
return domains->aux_legacy_usbc + (int)(aux_ch - domains->aux_ch_start);
@@ -2482,7 +2482,7 @@ intel_display_power_tbt_aux_domain(struct drm_i915_private *i915, enum aux_ch au
24822482
{
24832483
const struct intel_ddi_port_domains *domains = intel_port_domains_for_aux_ch(i915, aux_ch);
24842484

2485-
if (drm_WARN_ON(&i915->drm, !domains) || domains->aux_tbt == POWER_DOMAIN_INVALID)
2485+
if (drm_WARN_ON(&i915->drm, !domains || domains->aux_tbt == POWER_DOMAIN_INVALID))
24862486
return POWER_DOMAIN_AUX_TBT1;
24872487

24882488
return domains->aux_tbt + (int)(aux_ch - domains->aux_ch_start);

drivers/gpu/drm/i915/gem/i915_gem_ttm.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,10 @@ static int i915_ttm_truncate(struct drm_i915_gem_object *obj)
612612

613613
WARN_ON_ONCE(obj->mm.madv == I915_MADV_WILLNEED);
614614

615+
err = ttm_bo_wait(bo, true, false);
616+
if (err)
617+
return err;
618+
615619
err = i915_ttm_move_notify(bo);
616620
if (err)
617621
return err;

drivers/gpu/drm/i915/gvt/kvmgt.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -664,8 +664,6 @@ static int intel_vgpu_open_device(struct vfio_device *vfio_dev)
664664
return -ESRCH;
665665
}
666666

667-
kvm_get_kvm(vgpu->vfio_device.kvm);
668-
669667
if (__kvmgt_vgpu_exist(vgpu))
670668
return -EEXIST;
671669

@@ -676,6 +674,7 @@ static int intel_vgpu_open_device(struct vfio_device *vfio_dev)
676674

677675
vgpu->track_node.track_write = kvmgt_page_track_write;
678676
vgpu->track_node.track_flush_slot = kvmgt_page_track_flush_slot;
677+
kvm_get_kvm(vgpu->vfio_device.kvm);
679678
kvm_page_track_register_notifier(vgpu->vfio_device.kvm,
680679
&vgpu->track_node);
681680

@@ -715,15 +714,14 @@ static void intel_vgpu_close_device(struct vfio_device *vfio_dev)
715714

716715
kvm_page_track_unregister_notifier(vgpu->vfio_device.kvm,
717716
&vgpu->track_node);
717+
kvm_put_kvm(vgpu->vfio_device.kvm);
718+
718719
kvmgt_protect_table_destroy(vgpu);
719720
gvt_cache_destroy(vgpu);
720721

721722
intel_vgpu_release_msi_eventfd_ctx(vgpu);
722723

723724
vgpu->attached = false;
724-
725-
if (vgpu->vfio_device.kvm)
726-
kvm_put_kvm(vgpu->vfio_device.kvm);
727725
}
728726

729727
static u64 intel_vgpu_get_bar_addr(struct intel_vgpu *vgpu, int bar)

0 commit comments

Comments
 (0)