On Thu, Nov 27, 2014 at 11:22:49AM +0000, Dave Gordon wrote: > There are numerous places in the code where the driver's idea of > how much space is left in a ring is updated using the driver's > latest notions of the positions of 'head' and 'tail' for the ring. > Among them are some that update one or both of these values before > (re)doing the calculation. In particular, there are four different > places in the code where 'last_retired_head' is copied to 'head' > and then set to -1; and two of these do not have a guard to check > that it has actually been updated since last time it was consumed, > leaving the possibility that the dummy -1 can be transferred from > 'last_retired_head' to 'head', causing the space calculation to > produce 'impossible' results (previously seen on Android/VLV). > > This code therefore consolidates all the calculation and updating of > these values, such that there is only one place where the ring space > is updated, and it ALWAYS uses (and consumes) 'last_retired_head' if > (and ONLY if) it has been updated since the last call. > > Signed-off-by: Dave Gordon <david.s.gordon@xxxxxxxxx> Both applied, thanks. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx