Takashi Iwai dd399b
From 8dbc2ccac5a65c5b57e3070e36a3dc97c7970d96 Mon Sep 17 00:00:00 2001
Takashi Iwai dd399b
From: Colin Ian King <colin.king@canonical.com>
Takashi Iwai dd399b
Date: Wed, 3 Mar 2021 00:27:59 +0000
Takashi Iwai dd399b
Subject: [PATCH] drm/radeon: fix copy of uninitialized variable back to userspace
Takashi Iwai dd399b
Mime-version: 1.0
Takashi Iwai dd399b
Content-type: text/plain; charset=UTF-8
Takashi Iwai dd399b
Content-transfer-encoding: 8bit
Takashi Iwai dd399b
Git-commit: 8dbc2ccac5a65c5b57e3070e36a3dc97c7970d96
Takashi Iwai dd399b
Patch-mainline: v5.13-rc1
Takashi Iwai dd399b
References: git-fixes
Takashi Iwai dd399b
Takashi Iwai dd399b
Currently the ioctl command RADEON_INFO_SI_BACKEND_ENABLED_MASK can
Takashi Iwai dd399b
copy back uninitialised data in value_tmp that pointer *value points
Takashi Iwai dd399b
to. This can occur when rdev->family is less than CHIP_BONAIRE and
Takashi Iwai dd399b
less than CHIP_TAHITI.  Fix this by adding in a missing -EINVAL
Takashi Iwai dd399b
so that no invalid value is copied back to userspace.
Takashi Iwai dd399b
Takashi Iwai dd399b
Addresses-coverity: ("Uninitialized scalar variable)
Takashi Iwai dd399b
Cc: stable@vger.kernel.org # 3.13+
Takashi Iwai dd399b
Fixes: 439a1cfffe2c ("drm/radeon: expose render backend mask to the userspace")
Takashi Iwai dd399b
Reviewed-by: Christian König <christian.koenig@amd.com>
Takashi Iwai dd399b
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Takashi Iwai dd399b
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Takashi Iwai dd399b
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai dd399b
Takashi Iwai dd399b
---
Takashi Iwai dd399b
 drivers/gpu/drm/radeon/radeon_kms.c | 1 +
Takashi Iwai dd399b
 1 file changed, 1 insertion(+)
Takashi Iwai dd399b
Takashi Iwai dd399b
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
Takashi Iwai dd399b
index 2479d6ab7a36..58876bb4ef2a 100644
Takashi Iwai dd399b
--- a/drivers/gpu/drm/radeon/radeon_kms.c
Takashi Iwai dd399b
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
Takashi Iwai dd399b
@@ -518,6 +518,7 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
Takashi Iwai dd399b
 			*value = rdev->config.si.backend_enable_mask;
Takashi Iwai dd399b
 		} else {
Takashi Iwai dd399b
 			DRM_DEBUG_KMS("BACKEND_ENABLED_MASK is si+ only!\n");
Takashi Iwai dd399b
+			return -EINVAL;
Takashi Iwai dd399b
 		}
Takashi Iwai dd399b
 		break;
Takashi Iwai dd399b
 	case RADEON_INFO_MAX_SCLK:
Takashi Iwai dd399b
-- 
Takashi Iwai dd399b
2.26.2
Takashi Iwai dd399b