diff options
| author | Dave Airlie <[email protected]> | 2020-07-31 13:04:00 +1000 | 
|---|---|---|
| committer | Dave Airlie <[email protected]> | 2020-07-31 13:04:00 +1000 | 
| commit | 887c909dd5d557c203a233ebbe238c18438a680a (patch) | |
| tree | 0038667b3959037fdc53bcc06f7879c91109fca2 /drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | |
| parent | faa0fcf943d2d53992b3c73752df9a0547cb4797 (diff) | |
| parent | 87004abfbc27261edd15716515d89ab42198b405 (diff) | |
Merge tag 'amd-drm-fixes-5.8-2020-07-30' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
amd-drm-fixes-5.8-2020-07-30:
amdgpu:
- Revert a fix which caused other regressions
- Fix potential kernel info leak
- Fix a use-after-free bug that was uncovered by another change in 5.7
Signed-off-by: Dave Airlie <[email protected]>
From: Alex Deucher <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c index ebb8a28ff002..02e6f8c4dde0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c @@ -778,7 +778,8 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,  		tmp_str++;  	while (isspace(*++tmp_str)); -	while ((sub_str = strsep(&tmp_str, delimiter)) != NULL) { +	while (tmp_str[0]) { +		sub_str = strsep(&tmp_str, delimiter);  		ret = kstrtol(sub_str, 0, ¶meter[parameter_size]);  		if (ret)  			return -EINVAL; @@ -1038,7 +1039,8 @@ static ssize_t amdgpu_read_mask(const char *buf, size_t count, uint32_t *mask)  	memcpy(buf_cpy, buf, bytes);  	buf_cpy[bytes] = '\0';  	tmp = buf_cpy; -	while ((sub_str = strsep(&tmp, delimiter)) != NULL) { +	while (tmp[0]) { +		sub_str = strsep(&tmp, delimiter);  		if (strlen(sub_str)) {  			ret = kstrtol(sub_str, 0, &level);  			if (ret) @@ -1635,7 +1637,8 @@ static ssize_t amdgpu_set_pp_power_profile_mode(struct device *dev,  			i++;  		memcpy(buf_cpy, buf, count-i);  		tmp_str = buf_cpy; -		while ((sub_str = strsep(&tmp_str, delimiter)) != NULL) { +		while (tmp_str[0]) { +			sub_str = strsep(&tmp_str, delimiter);  			ret = kstrtol(sub_str, 0, ¶meter[parameter_size]);  			if (ret)  				return -EINVAL; |