hwmon fixes for v5.11-rc3

Fix possible KASAN issue in amd_energy driver
 Avoid configuration problem in pwm-fan driver
 Fix kernel-doc warning in sbtsi_temp documentation
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEiHPvMQj9QTOCiqgVyx8mb86fmYEFAl/59EgACgkQyx8mb86f
 mYGvaw//UNsD1PF0HHEZmyO8sFAZdTCnECo/oXo5ioiLPNw40kG7lwlGX45iW0la
 ymPWnDnHVMqURTSgXA162mE3Y/75sFUUs2Zs39yHokRdkWlz44Mz9qELmFiD8H9U
 FxwvP81/1wKqZlHgVG4MZeBLYJ+kjXuJgu7LpaQ24MDLywP4pw90ogzyr3QpM9gp
 jUtA9sVKphfbBw3eA+3VtBuc8k21S1vG0auzXQ/go8TvYX2bwjeN6J9C/brP4uUl
 vCHz/wO05u2C4+BaUJb0GPeVPTC6mrEReRzrJArJ7xO9jUfJXxQwfypvYJgzeMLq
 HwucbMXhOABVTRmHSEqX6tI1J+AnaqhiHHS8M6G0vlrj4Vss9WayT0O9C7279ggg
 ibZqpp6WC22s8muU9IY7HSD6lqxXN2gGinJ5atXfkjWp4RXkeBlkmfjDPtMaSd9j
 78zcDhwZ+7KLD5jloVqasxudSk5RoJWKY+NOWwWQazw67SDHXxklxViZEQDmtVNw
 Gdhl/1GSFtN170NLoc/aUBRqLuxXG99H9H4DzOLF4h9JvMr+m1k9l5zwWh9abxzn
 Q5bNjbc70iu8ZNABd9HM2Djkkkq01UR6IG6WB3hvLeQ0gPLPJ9DLDH6vF145IdQr
 jqg56JyUJn12f6Aj4Z3XMXp0nTzAr983IFX4FhNW2Vv4v0acb6E=
 =xdRR
 -----END PGP SIGNATURE-----

Merge tag 'hwmon-for-v5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:

 - Fix possible KASAN issue in amd_energy driver

 - Avoid configuration problem in pwm-fan driver

 - Fix kernel-doc warning in sbtsi_temp documentation

* tag 'hwmon-for-v5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (amd_energy) fix allocation of hwmon_channel_info config
  hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
  hwmon: (sbtsi_temp) Fix Documenation kernel-doc warning
This commit is contained in:
Linus Torvalds 2021-01-09 11:22:30 -08:00
commit 2ff90100ac
3 changed files with 14 additions and 3 deletions

View File

@ -1,7 +1,7 @@
.. SPDX-License-Identifier: GPL-2.0-or-later .. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver sbtsi_temp Kernel driver sbtsi_temp
================== ========================
Supported hardware: Supported hardware:

View File

@ -222,7 +222,7 @@ static int amd_create_sensor(struct device *dev,
*/ */
cpus = num_present_cpus() / num_siblings; cpus = num_present_cpus() / num_siblings;
s_config = devm_kcalloc(dev, cpus + sockets, s_config = devm_kcalloc(dev, cpus + sockets + 1,
sizeof(u32), GFP_KERNEL); sizeof(u32), GFP_KERNEL);
if (!s_config) if (!s_config)
return -ENOMEM; return -ENOMEM;
@ -254,6 +254,7 @@ static int amd_create_sensor(struct device *dev,
scnprintf(label_l[i], 10, "Esocket%u", (i - cpus)); scnprintf(label_l[i], 10, "Esocket%u", (i - cpus));
} }
s_config[i] = 0;
return 0; return 0;
} }

View File

@ -334,8 +334,18 @@ static int pwm_fan_probe(struct platform_device *pdev)
ctx->pwm_value = MAX_PWM; ctx->pwm_value = MAX_PWM;
/* Set duty cycle to maximum allowed and enable PWM output */
pwm_init_state(ctx->pwm, &state); pwm_init_state(ctx->pwm, &state);
/*
* __set_pwm assumes that MAX_PWM * (period - 1) fits into an unsigned
* long. Check this here to prevent the fan running at a too low
* frequency.
*/
if (state.period > ULONG_MAX / MAX_PWM + 1) {
dev_err(dev, "Configured period too big\n");
return -EINVAL;
}
/* Set duty cycle to maximum allowed and enable PWM output */
state.duty_cycle = ctx->pwm->args.period - 1; state.duty_cycle = ctx->pwm->args.period - 1;
state.enabled = true; state.enabled = true;