tree:   git://anongit.freedesktop.org/drm-intel for-linux-next-fixes
head:   ab30b9c117f37f9f33bec6b92818e2b402791f54
commit: ab30b9c117f37f9f33bec6b92818e2b402791f54 [4/4] drm/i915: Wrap 
engine->schedule in RCU locks for set-wedge protection
config: i386-randconfig-x010-201810 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout ab30b9c117f37f9f33bec6b92818e2b402791f54
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_set_wedged':
>> drivers/gpu//drm/i915/i915_gem.c:3223:8: error: 'struct drm_i915_private' 
>> has no member named 'caps'; did you mean 'ips'?
     i915->caps.scheduler = 0;
           ^~~~
           ips

vim +3223 drivers/gpu//drm/i915/i915_gem.c

  3206  
  3207  void i915_gem_set_wedged(struct drm_i915_private *i915)
  3208  {
  3209          struct intel_engine_cs *engine;
  3210          enum intel_engine_id id;
  3211  
  3212          /*
  3213           * First, stop submission to hw, but do not yet complete 
requests by
  3214           * rolling the global seqno forward (since this would complete 
requests
  3215           * for which we haven't set the fence error to EIO yet).
  3216           */
  3217          for_each_engine(engine, i915, id) {
  3218                  i915_gem_reset_prepare_engine(engine);
  3219  
  3220                  engine->submit_request = nop_submit_request;
  3221                  engine->schedule = NULL;
  3222          }
> 3223          i915->caps.scheduler = 0;
  3224  
  3225          /*
  3226           * Make sure no one is running the old callback before we 
proceed with
  3227           * cancelling requests and resetting the completion tracking. 
Otherwise
  3228           * we might submit a request to the hardware which never 
completes.
  3229           */
  3230          synchronize_rcu();
  3231  
  3232          for_each_engine(engine, i915, id) {
  3233                  /* Mark all executing requests as skipped */
  3234                  engine->cancel_requests(engine);
  3235  
  3236                  /*
  3237                   * Only once we've force-cancelled all in-flight 
requests can we
  3238                   * start to complete all requests.
  3239                   */
  3240                  engine->submit_request = nop_complete_submit_request;
  3241          }
  3242  
  3243          /*
  3244           * Make sure no request can slip through without getting 
completed by
  3245           * either this call here to intel_engine_init_global_seqno, or 
the one
  3246           * in nop_complete_submit_request.
  3247           */
  3248          synchronize_rcu();
  3249  
  3250          for_each_engine(engine, i915, id) {
  3251                  unsigned long flags;
  3252  
  3253                  /* Mark all pending requests as complete so that any 
concurrent
  3254                   * (lockless) lookup doesn't try and wait upon the 
request as we
  3255                   * reset it.
  3256                   */
  3257                  spin_lock_irqsave(&engine->timeline->lock, flags);
  3258                  intel_engine_init_global_seqno(engine,
  3259                                                 
intel_engine_last_submit(engine));
  3260                  spin_unlock_irqrestore(&engine->timeline->lock, flags);
  3261  
  3262                  i915_gem_reset_finish_engine(engine);
  3263          }
  3264  
  3265          set_bit(I915_WEDGED, &i915->gpu_error.flags);
  3266          wake_up_all(&i915->gpu_error.reset_queue);
  3267  }
  3268  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to