diff options
author | David S. Miller <davem@davemloft.net> | 2017-10-22 08:36:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-22 08:39:14 -0400 |
commit | f8ddadc4db6c7b7029b6d0e0d9af24f74ad27ca2 (patch) | |
tree | 0a6432aba336bae42313613f4c891bcfce02bd4e /drivers/gpu/drm/i915/i915_gem.c | |
parent | bdd091bab8c631bd2801af838e344fad34566410 (diff) | |
parent | b5ac3beb5a9f0ef0ea64cd85faf94c0dc4de0e42 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
There were quite a few overlapping sets of changes here.
Daniel's bug fix for off-by-ones in the new BPF branch instructions,
along with the added allowances for "data_end > ptr + x" forms
collided with the metadata additions.
Along with those three changes came veritifer test cases, which in
their final form I tried to group together properly. If I had just
trimmed GIT's conflict tags as-is, this would have split up the
meta tests unnecessarily.
In the socketmap code, a set of preemption disabling changes
overlapped with the rename of bpf_compute_data_end() to
bpf_compute_data_pointers().
Changes were made to the mv88e6060.c driver set addr method
which got removed in net-next.
The hyperv transport socket layer had a locking change in 'net'
which overlapped with a change of socket state macro usage
in 'net-next'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 19404c96eeb1..32e857dc507c 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -2657,6 +2657,9 @@ i915_gem_object_pwrite_gtt(struct drm_i915_gem_object *obj, | |||
2657 | if (READ_ONCE(obj->mm.pages)) | 2657 | if (READ_ONCE(obj->mm.pages)) |
2658 | return -ENODEV; | 2658 | return -ENODEV; |
2659 | 2659 | ||
2660 | if (obj->mm.madv != I915_MADV_WILLNEED) | ||
2661 | return -EFAULT; | ||
2662 | |||
2660 | /* Before the pages are instantiated the object is treated as being | 2663 | /* Before the pages are instantiated the object is treated as being |
2661 | * in the CPU domain. The pages will be clflushed as required before | 2664 | * in the CPU domain. The pages will be clflushed as required before |
2662 | * use, and we can freely write into the pages directly. If userspace | 2665 | * use, and we can freely write into the pages directly. If userspace |
@@ -3013,10 +3016,15 @@ void i915_gem_reset_finish(struct drm_i915_private *dev_priv) | |||
3013 | 3016 | ||
3014 | static void nop_submit_request(struct drm_i915_gem_request *request) | 3017 | static void nop_submit_request(struct drm_i915_gem_request *request) |
3015 | { | 3018 | { |
3019 | unsigned long flags; | ||
3020 | |||
3016 | GEM_BUG_ON(!i915_terminally_wedged(&request->i915->gpu_error)); | 3021 | GEM_BUG_ON(!i915_terminally_wedged(&request->i915->gpu_error)); |
3017 | dma_fence_set_error(&request->fence, -EIO); | 3022 | dma_fence_set_error(&request->fence, -EIO); |
3018 | i915_gem_request_submit(request); | 3023 | |
3024 | spin_lock_irqsave(&request->engine->timeline->lock, flags); | ||
3025 | __i915_gem_request_submit(request); | ||
3019 | intel_engine_init_global_seqno(request->engine, request->global_seqno); | 3026 | intel_engine_init_global_seqno(request->engine, request->global_seqno); |
3027 | spin_unlock_irqrestore(&request->engine->timeline->lock, flags); | ||
3020 | } | 3028 | } |
3021 | 3029 | ||
3022 | static void engine_set_wedged(struct intel_engine_cs *engine) | 3030 | static void engine_set_wedged(struct intel_engine_cs *engine) |