From: Dave Airlie Date: Thu, 14 Nov 2019 01:06:01 +0000 (+1000) Subject: Backmerge i915 security patches from commit 'ea0b163b13ff' into drm-next X-Git-Tag: v5.5-rc1~128^2~7 X-Git-Url: https://repo.jachan.dev/linux.git/commitdiff_plain/dfce90259d74 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 --- dfce90259d74d34cff4cb0c75ecfc0336c09520f diff --cc drivers/gpu/drm/i915/gem/i915_gem_context.c index de6e55af82cf,e41fd94ae5a9..138c8e33d26b --- 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 e4f5c269150a,e635e1e5f4d3..f0998f1225af --- 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 c5d1047a4bc5,9dd8c299cb2d..758f0e8ec672 --- 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 ae306dab57fa,f8ee9aba3955..445dacbdc0e9 --- 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)