From: Dave Airlie <airlied@redhat.com>
Date: Thu, 14 Nov 2019 01:06:01 +0000 (+1000)
Subject: Backmerge i915 security patches from commit 'ea0b163b13ff' into drm-next
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=dfce90259d74d34cff4cb0c75ecfc0336c09520f;p=linux.git

Backmerge i915 security patches from commit 'ea0b163b13ff' into drm-next

This backmerges the branch that ended up in Linus' tree. It removes
all the changes for the rc6 patches from Linus' tree in favour of
a patch that is based on a large refactor that occured.

Otherwise it all looks good.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---

dfce90259d74d34cff4cb0c75ecfc0336c09520f
diff --cc drivers/gpu/drm/i915/gem/i915_gem_context.c
index de6e55af82cf7,e41fd94ae5a9d..138c8e33d26b4
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@@ -527,10 -443,9 +529,13 @@@ __create_context(struct drm_i915_privat
  	for (i = 0; i < ARRAY_SIZE(ctx->hang_timestamp); i++)
  		ctx->hang_timestamp[i] = jiffies - CONTEXT_FAST_HANG_JIFFIES;
  
+ 	ctx->jump_whitelist = NULL;
+ 	ctx->jump_whitelist_cmds = 0;
+ 
 +	spin_lock(&i915->gem.contexts.lock);
 +	list_add_tail(&ctx->link, &i915->gem.contexts.list);
 +	spin_unlock(&i915->gem.contexts.lock);
 +
  	return ctx;
  
  err_free:
diff --cc drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index e4f5c269150ab,e635e1e5f4d30..f0998f1225af1
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@@ -1994,9 -1988,11 +2023,11 @@@ static struct i915_vma *eb_parse(struc
  {
  	struct intel_engine_pool_node *pool;
  	struct i915_vma *vma;
+ 	u64 batch_start;
+ 	u64 shadow_batch_start;
  	int err;
  
 -	pool = intel_engine_pool_get(&eb->engine->pool, eb->batch_len);
 +	pool = intel_engine_get_pool(eb->engine, eb->batch_len);
  	if (IS_ERR(pool))
  		return ERR_CAST(pool);
  
diff --cc drivers/gpu/drm/i915/gt/intel_engine_types.h
index c5d1047a4bc5f,9dd8c299cb2db..758f0e8ec6723
--- a/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@@ -454,13 -473,15 +454,14 @@@ struct intel_engine_cs 
  	/* status_notifier: list of callbacks for context-switch changes */
  	struct atomic_notifier_head context_status_notifier;
  
- #define I915_ENGINE_NEEDS_CMD_PARSER BIT(0)
 -	struct intel_engine_hangcheck hangcheck;
 -
+ #define I915_ENGINE_USING_CMD_PARSER BIT(0)
  #define I915_ENGINE_SUPPORTS_STATS   BIT(1)
  #define I915_ENGINE_HAS_PREEMPTION   BIT(2)
  #define I915_ENGINE_HAS_SEMAPHORES   BIT(3)
  #define I915_ENGINE_NEEDS_BREADCRUMB_TASKLET BIT(4)
  #define I915_ENGINE_IS_VIRTUAL       BIT(5)
 +#define I915_ENGINE_HAS_RELATIVE_MMIO BIT(6)
+ #define I915_ENGINE_REQUIRES_CMD_PARSER BIT(7)
  	unsigned int flags;
  
  	/*
diff --cc drivers/gpu/drm/i915/i915_reg.h
index ae306dab57fad,f8ee9aba3955c..445dacbdc0e9e
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@@ -7353,8 -7217,10 +7357,12 @@@ enum 
  #define TGL_DMC_DEBUG_DC5_COUNT	_MMIO(0x101084)
  #define TGL_DMC_DEBUG_DC6_COUNT	_MMIO(0x101088)
  
 +#define DMC_DEBUG3		_MMIO(0x101090)
 +
+ /* Display Internal Timeout Register */
+ #define RM_TIMEOUT		_MMIO(0x42060)
+ #define  MMIO_TIMEOUT_US(us)	((us) << 0)
+ 
  /* interrupts */
  #define DE_MASTER_IRQ_CONTROL   (1 << 31)
  #define DE_SPRITEB_FLIP_DONE    (1 << 29)