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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel