This is my quick attempt at aliminating i915_gem_execbuffer_wait_for_flips(). While doing that I noticed that intel_pipe_set_base() never actually waited for pending flips, while it probably should. I also spotted another possible problem, for which I didn't provide a patch. We wait on the pending_flip_queue based on two different variables. One is the unpin_work, which indicates pending flips, and the other is mm.wedged, which seems to indicate that the GPU is stuck. I noticed that we don't seem to call wake_up(pending_flip_queue) after clearing mm.wedged. Is that a bug, or did I just miss something?