提交 10ec5e6c 编写于 作者: L Linus Torvalds

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  vmwgfx: Use kcalloc instead of kzalloc to allocate array
  drm/i915: fix infinite recursion on unbind due to ilk vt-d w/a
  drm/radeon/kms: fix return type for radeon_encoder_get_dp_bridge_encoder_id
...@@ -2026,8 +2026,13 @@ i915_wait_request(struct intel_ring_buffer *ring, ...@@ -2026,8 +2026,13 @@ i915_wait_request(struct intel_ring_buffer *ring,
* to handle this, the waiter on a request often wants an associated * to handle this, the waiter on a request often wants an associated
* buffer to have made it to the inactive list, and we would need * buffer to have made it to the inactive list, and we would need
* a separate wait queue to handle that. * a separate wait queue to handle that.
*
* To avoid a recursion with the ilk VT-d workaround (that calls
* gpu_idle when unbinding objects with interruptible==false) don't
* retire requests in that case (because it might call unbind if the
* active list holds the last reference to the object).
*/ */
if (ret == 0) if (ret == 0 && dev_priv->mm.interruptible)
i915_gem_retire_requests_ring(ring); i915_gem_retire_requests_ring(ring);
return ret; return ret;
......
...@@ -233,13 +233,12 @@ u16 radeon_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder) ...@@ -233,13 +233,12 @@ u16 radeon_encoder_get_dp_bridge_encoder_id(struct drm_encoder *encoder)
switch (radeon_encoder->encoder_id) { switch (radeon_encoder->encoder_id) {
case ENCODER_OBJECT_ID_TRAVIS: case ENCODER_OBJECT_ID_TRAVIS:
case ENCODER_OBJECT_ID_NUTMEG: case ENCODER_OBJECT_ID_NUTMEG:
return true; return radeon_encoder->encoder_id;
default: default:
return false; return ENCODER_OBJECT_ID_NONE;
} }
} }
return ENCODER_OBJECT_ID_NONE;
return false;
} }
void radeon_panel_mode_fixup(struct drm_encoder *encoder, void radeon_panel_mode_fixup(struct drm_encoder *encoder,
......
...@@ -140,7 +140,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data, ...@@ -140,7 +140,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
goto out_clips; goto out_clips;
} }
clips = kzalloc(num_clips * sizeof(*clips), GFP_KERNEL); clips = kcalloc(num_clips, sizeof(*clips), GFP_KERNEL);
if (clips == NULL) { if (clips == NULL) {
DRM_ERROR("Failed to allocate clip rect list.\n"); DRM_ERROR("Failed to allocate clip rect list.\n");
ret = -ENOMEM; ret = -ENOMEM;
...@@ -232,7 +232,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data, ...@@ -232,7 +232,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
goto out_clips; goto out_clips;
} }
clips = kzalloc(num_clips * sizeof(*clips), GFP_KERNEL); clips = kcalloc(num_clips, sizeof(*clips), GFP_KERNEL);
if (clips == NULL) { if (clips == NULL) {
DRM_ERROR("Failed to allocate clip rect list.\n"); DRM_ERROR("Failed to allocate clip rect list.\n");
ret = -ENOMEM; ret = -ENOMEM;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册