aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-01-17 15:21:56 -0500
committerDave Airlie <airlied@linux.ie>2010-01-20 17:47:01 -0500
commitdb96380ea26fcc31ab37189aedeabd12894b1431 (patch)
treeea5b5a5959b81fd2d60a705f96d0d1adeab86881 /drivers
parent7e71c9e2e7704ebf044d4a964e02fbd2098a173f (diff)
drm/radeon/kms: r600/r700 don't test ib if ib initialization fails
If ib initialization failed don't try to test ib as it will result in an oops (accessing NULL ib buffer ptr). Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/radeon/r600.c13
-rw-r--r--drivers/gpu/drm/radeon/rv770.c13
2 files changed, 14 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index bb9115bdc3a2..d0bd117a463a 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2064,13 +2064,14 @@ int r600_init(struct radeon_device *rdev)
2064 if (rdev->accel_working) { 2064 if (rdev->accel_working) {
2065 r = radeon_ib_pool_init(rdev); 2065 r = radeon_ib_pool_init(rdev);
2066 if (r) { 2066 if (r) {
2067 DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r); 2067 dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
2068 rdev->accel_working = false;
2069 }
2070 r = r600_ib_test(rdev);
2071 if (r) {
2072 DRM_ERROR("radeon: failed testing IB (%d).\n", r);
2073 rdev->accel_working = false; 2068 rdev->accel_working = false;
2069 } else {
2070 r = r600_ib_test(rdev);
2071 if (r) {
2072 dev_err(rdev->dev, "IB test failed (%d).\n", r);
2073 rdev->accel_working = false;
2074 }
2074 } 2075 }
2075 } 2076 }
2076 2077
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index c8cf2bc2b911..cf8f2b17d627 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -1075,13 +1075,14 @@ int rv770_init(struct radeon_device *rdev)
1075 if (rdev->accel_working) { 1075 if (rdev->accel_working) {
1076 r = radeon_ib_pool_init(rdev); 1076 r = radeon_ib_pool_init(rdev);
1077 if (r) { 1077 if (r) {
1078 DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r); 1078 dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
1079 rdev->accel_working = false;
1080 }
1081 r = r600_ib_test(rdev);
1082 if (r) {
1083 DRM_ERROR("radeon: failed testing IB (%d).\n", r);
1084 rdev->accel_working = false; 1079 rdev->accel_working = false;
1080 } else {
1081 r = r600_ib_test(rdev);
1082 if (r) {
1083 dev_err(rdev->dev, "IB test failed (%d).\n", r);
1084 rdev->accel_working = false;
1085 }
1085 } 1086 }
1086 } 1087 }
1087 return 0; 1088 return 0;