drm/i915: Eliminate race from gen2/3 page flip interrupt handling
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 19 Feb 2013 13:16:38 +0000 (15:16 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 20 Feb 2013 14:03:05 +0000 (15:03 +0100)
commit5e2032d47ac9b67e671bd855c5e68005190954da
treee9e6ef963638820797fedb1ed28346bd3479679f
parent2ec90668e3db1d9fe9bb8370d74a5e51709c2d79
drm/i915: Eliminate race from gen2/3 page flip interrupt handling

If the interrupt handler were to process a previous vblank interrupt and
the following flip pending interrupt at the same time, the page flip
would be completed too soon.

To eliminate this race, check the live pending flip status from the ISR
register before finishing the page flip.

v2: Added a comment explaining the logic (by Chris Wilson)
v3: Fix a typo in the comment

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_irq.c