On Wed, Jul 29, 2020 at 10:20 PM Paweł Gronowski <me@xxxxxxxxxx> wrote: > > Regression was introduced in commit 38e0c89a19fd > ("drm/amdgpu: Fix NULL dereference in dpm sysfs handlers") which > made the set_pp_od_clk_voltage and set_pp_power_profile_mode return > -EINVAL for previously valid input. This was caused by an empty > string (starting at the \0 character) being passed to the kstrtol. > > Signed-off-by: Paweł Gronowski <me@xxxxxxxxxx> Applied. Thanks! Alex > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c > index ebb8a28ff002..cbf623ff03bd 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c > @@ -778,12 +778,14 @@ 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 ((sub_str = strsep(&tmp_str, delimiter)) && *sub_str) { > ret = kstrtol(sub_str, 0, ¶meter[parameter_size]); > if (ret) > return -EINVAL; > parameter_size++; > > + if (!tmp_str) > + break; > while (isspace(*tmp_str)) > tmp_str++; > } > @@ -1635,11 +1637,14 @@ 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 ((sub_str = strsep(&tmp_str, delimiter)) && *sub_str) { > ret = kstrtol(sub_str, 0, ¶meter[parameter_size]); > if (ret) > return -EINVAL; > parameter_size++; > + > + if (!tmp_str) > + break; > while (isspace(*tmp_str)) > tmp_str++; > } > -- > 2.25.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx