aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_cs.c')
-rw-r--r--drivers/gpu/drm/radeon/r600_cs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 5dceea6f71ae..7b399dc5fd54 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -749,7 +749,10 @@ static int r600_cs_track_check(struct radeon_cs_parser *p)
749 } 749 }
750 750
751 for (i = 0; i < 8; i++) { 751 for (i = 0; i < 8; i++) {
752 if ((tmp >> (i * 4)) & 0xF) { 752 u32 format = G_0280A0_FORMAT(track->cb_color_info[i]);
753
754 if (format != V_0280A0_COLOR_INVALID &&
755 (tmp >> (i * 4)) & 0xF) {
753 /* at least one component is enabled */ 756 /* at least one component is enabled */
754 if (track->cb_color_bo[i] == NULL) { 757 if (track->cb_color_bo[i] == NULL) {
755 dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n", 758 dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n",
@@ -2386,7 +2389,7 @@ int r600_cs_legacy(struct drm_device *dev, void *data, struct drm_file *filp,
2386 ib_chunk = &parser.chunks[parser.chunk_ib_idx]; 2389 ib_chunk = &parser.chunks[parser.chunk_ib_idx];
2387 parser.ib.length_dw = ib_chunk->length_dw; 2390 parser.ib.length_dw = ib_chunk->length_dw;
2388 *l = parser.ib.length_dw; 2391 *l = parser.ib.length_dw;
2389 if (DRM_COPY_FROM_USER(ib, ib_chunk->user_ptr, ib_chunk->length_dw * 4)) { 2392 if (copy_from_user(ib, ib_chunk->user_ptr, ib_chunk->length_dw * 4)) {
2390 r = -EFAULT; 2393 r = -EFAULT;
2391 r600_cs_parser_fini(&parser, r); 2394 r600_cs_parser_fini(&parser, r);
2392 return r; 2395 return r;