aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/evergreen.c
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2012-09-18 15:30:44 -0400
committerAlex Deucher <alexander.deucher@amd.com>2012-12-07 19:48:06 -0500
commitae133a1129790ec288b429b5f08ab4701633844a (patch)
tree5b42bfef6981335fa6113b6830e07902cc02652b /drivers/gpu/drm/radeon/evergreen.c
parent1c4c3a99435c8891469fe6fca5ccd5fbe16f295a (diff)
drm/radeon: stop page faults from hanging the system (v2)
Redirect invalid memory accesses to the default page instead of locking up the memory controller. Also enable the invalid memory access interrupts and start spamming system log with it. v2 (agd5f): fix up against 2 level PT changes Signed-off-by: Christian König <deathsimple@vodafone.de> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 219942c660d7..78de2e4097b5 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3093,6 +3093,16 @@ restart_ih:
3093 break; 3093 break;
3094 } 3094 }
3095 break; 3095 break;
3096 case 146:
3097 case 147:
3098 dev_err(rdev->dev, "GPU fault detected: %d 0x%08x\n", src_id, src_data);
3099 dev_err(rdev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR 0x%08X\n",
3100 RREG32(VM_CONTEXT1_PROTECTION_FAULT_ADDR));
3101 dev_err(rdev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",
3102 RREG32(VM_CONTEXT1_PROTECTION_FAULT_STATUS));
3103 /* reset addr and status */
3104 WREG32_P(VM_CONTEXT1_CNTL2, 1, ~1);
3105 break;
3096 case 176: /* CP_INT in ring buffer */ 3106 case 176: /* CP_INT in ring buffer */
3097 case 177: /* CP_INT in IB1 */ 3107 case 177: /* CP_INT in IB1 */
3098 case 178: /* CP_INT in IB2 */ 3108 case 178: /* CP_INT in IB2 */