diff options
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 37dd6449f46f..bcd55917c7cc 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -2759,6 +2759,9 @@ int evergreen_irq_process(struct radeon_device *rdev) | |||
2759 | return IRQ_NONE; | 2759 | return IRQ_NONE; |
2760 | } | 2760 | } |
2761 | restart_ih: | 2761 | restart_ih: |
2762 | /* Order reading of wptr vs. reading of IH ring data */ | ||
2763 | rmb(); | ||
2764 | |||
2762 | /* display interrupts */ | 2765 | /* display interrupts */ |
2763 | evergreen_irq_ack(rdev); | 2766 | evergreen_irq_ack(rdev); |
2764 | 2767 | ||
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index f56e65579835..aa5571b73aa0 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -3318,6 +3318,9 @@ int r600_irq_process(struct radeon_device *rdev) | |||
3318 | } | 3318 | } |
3319 | 3319 | ||
3320 | restart_ih: | 3320 | restart_ih: |
3321 | /* Order reading of wptr vs. reading of IH ring data */ | ||
3322 | rmb(); | ||
3323 | |||
3321 | /* display interrupts */ | 3324 | /* display interrupts */ |
3322 | r600_irq_ack(rdev); | 3325 | r600_irq_ack(rdev); |
3323 | 3326 | ||