diff options
| author | Michel Dänzer <daenzer@vmware.com> | 2010-01-22 03:20:00 -0500 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2010-01-31 21:49:28 -0500 | 
| commit | 17aafccab4352b422aa01fa6ebf82daff693a5b3 (patch) | |
| tree | cee643823053ccdaad63ee84e1c0a9e43f233ca0 | |
| parent | f71d0187987e691516cd10c2702f002c0e2f0edc (diff) | |
drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure.
If radeon_cs_parser_init() fails, radeon_cs_ioctl() calls
radeon_cs_parser_fini() with the non-zero error value. The latter dereferenced
parser->ib which hasn't been initialized yet -> boom. Add a test for parser->ib
being non-NULL before dereferencing it.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_cs.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index 1496cb8658ef..1190148cf5e6 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c | |||
| @@ -189,7 +189,7 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error) | |||
| 189 | { | 189 | { | 
| 190 | unsigned i; | 190 | unsigned i; | 
| 191 | 191 | ||
| 192 | if (error) { | 192 | if (error && parser->ib) { | 
| 193 | radeon_bo_list_unvalidate(&parser->validated, | 193 | radeon_bo_list_unvalidate(&parser->validated, | 
| 194 | parser->ib->fence); | 194 | parser->ib->fence); | 
| 195 | } else { | 195 | } else { | 
