This patch closes the following race:
We get a PM interrupt A, mask it, set dev_priv-iir = PM_A and kick of the
work item. Scheduler isn't grumpy, so the work queue takes rps_lock,
grabs pm_iir = dev_priv-pm_iir and pm_imr = READ(PMIMR). Note that
pm_imr == pm_iir because we've just masked the
On Thu, Sep 08, 2011 at 02:00:21PM +0200, Daniel Vetter wrote:
This patch closes the following race:
We get a PM interrupt A, mask it, set dev_priv-iir = PM_A and kick of the
work item. Scheduler isn't grumpy, so the work queue takes rps_lock,
grabs pm_iir = dev_priv-pm_iir and pm_imr =
On Sun, Sep 04, 2011 at 09:38:56PM +, Ben Widawsky wrote:
Oops, you're totally right, I think I meant:
- I915_WRITE(GEN6_PMIMR, pm_imr ~pm_iir);
+ I915_WRITE(GEN6_PMIMR, dev_priv-pm_iir);
Imo still racy without the irqsafe rps_lock around it. gcc is free to
compile that into a
On Mon, 5 Sep 2011 08:38:07 +0200
Daniel Vetter dan...@ffwll.ch wrote:
On Sun, Sep 04, 2011 at 09:38:56PM +, Ben Widawsky wrote:
Oops, you're totally right, I think I meant:
- I915_WRITE(GEN6_PMIMR, pm_imr ~pm_iir);
+ I915_WRITE(GEN6_PMIMR, dev_priv-pm_iir);
Imo still
On Sun, 4 Sep 2011 23:51:52 -0700, Ben Widawsky b...@bwidawsk.net wrote:
On Mon, 5 Sep 2011 08:38:07 +0200
Daniel Vetter dan...@ffwll.ch wrote:
On Sun, Sep 04, 2011 at 09:38:56PM +, Ben Widawsky wrote:
Oops, you're totally right, I think I meant:
- I915_WRITE(GEN6_PMIMR,
This patch closes the following race:
We get a PM interrupt A, mask it, set dev_priv-iir = PM_A and kick of the
work item. Scheduler isn't grumpy, so the work queue takes rps_lock,
grabs pm_iir = dev_priv-pm_iir and pm_imr = READ(PMIMR). Note that
pm_imr == pm_iir because we've just masked the
On Sun, Sep 04, 2011 at 10:08:17AM -0700, Ben Widawsky wrote:
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 55518e3..3bc1479 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -415,12 +415,7 @@ static void
On Sun, Sep 04, 2011 at 09:26:48PM +0200, Daniel Vetter wrote:
On Sun, Sep 04, 2011 at 10:08:17AM -0700, Ben Widawsky wrote:
diff --git a/drivers/gpu/drm/i915/i915_irq.c
b/drivers/gpu/drm/i915/i915_irq.c
index 55518e3..3bc1479 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++
On Sun, Sep 04, 2011 at 07:56:57PM +, Ben Widawsky wrote:
On Sun, Sep 04, 2011 at 09:26:48PM +0200, Daniel Vetter wrote:
On Sun, Sep 04, 2011 at 10:08:17AM -0700, Ben Widawsky wrote:
diff --git a/drivers/gpu/drm/i915/i915_irq.c
b/drivers/gpu/drm/i915/i915_irq.c
index