diff options
| author | Robert Fitzsimons <robfitz@273k.net> | 2010-04-23 20:18:13 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2010-04-28 03:22:50 -0400 |
| commit | ccb2ad579f910e6146adf4eb3aa50325253ee8c9 (patch) | |
| tree | 00b52737a745b4facd3c59e92963ff5c25e2a7d7 | |
| parent | 797fd5b9dad12a100c81b5782573a41259728cb1 (diff) | |
drm/radeon/kms/agp The wrong AGP chipset can cause a NULL pointer dereference
Selecting the wrong or no CONFIG_AGP_* chipset can cause a NULL pointer
dereference when combined with CONFIG_DRM_RADEON_KMS and an old system
with a R100 AGP card (should effect other cards too). The agp field
will be set to NULL if no suitable AGP chipset driver is loaded,
drm_agp_acquire already preforms a suitable NULL check so it can be used
directly.
Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_agp.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c index c4457791dff1..28e473f1f56f 100644 --- a/drivers/gpu/drm/radeon/radeon_agp.c +++ b/drivers/gpu/drm/radeon/radeon_agp.c | |||
| @@ -134,12 +134,10 @@ int radeon_agp_init(struct radeon_device *rdev) | |||
| 134 | int ret; | 134 | int ret; |
| 135 | 135 | ||
| 136 | /* Acquire AGP. */ | 136 | /* Acquire AGP. */ |
| 137 | if (!rdev->ddev->agp->acquired) { | 137 | ret = drm_agp_acquire(rdev->ddev); |
| 138 | ret = drm_agp_acquire(rdev->ddev); | 138 | if (ret) { |
| 139 | if (ret) { | 139 | DRM_ERROR("Unable to acquire AGP: %d\n", ret); |
| 140 | DRM_ERROR("Unable to acquire AGP: %d\n", ret); | 140 | return ret; |
| 141 | return ret; | ||
| 142 | } | ||
| 143 | } | 141 | } |
| 144 | 142 | ||
| 145 | ret = drm_agp_info(rdev->ddev, &info); | 143 | ret = drm_agp_info(rdev->ddev, &info); |
