* [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value
@ 2024-11-12 10:38 Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 2/5] regulator: rk808: Add apply_bit for BUCK3 on RK809 Sasha Levin
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Sasha Levin @ 2024-11-12 10:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Charles Han, Bjorn Andersson, Sasha Levin, konradybcio,
linux-arm-msm
From: Charles Han <hanchunchao@inspur.com>
[ Upstream commit e694d2b5c58ba2d1e995d068707c8d966e7f5f2a ]
devm_kasprintf() can return a NULL pointer on failure but this
returned value in qcom_socinfo_probe() is not checked.
Signed-off-by: Charles Han <hanchunchao@inspur.com>
Link: https://lore.kernel.org/r/20240929072349.202520-1-hanchunchao@inspur.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/soc/qcom/socinfo.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 3303bcaf67154..8a9f781ba83f7 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -433,10 +433,16 @@ static int qcom_socinfo_probe(struct platform_device *pdev)
qs->attr.revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u.%u",
SOCINFO_MAJOR(le32_to_cpu(info->ver)),
SOCINFO_MINOR(le32_to_cpu(info->ver)));
- if (offsetof(struct socinfo, serial_num) <= item_size)
+ if (!qs->attr.soc_id || qs->attr.revision)
+ return -ENOMEM;
+
+ if (offsetof(struct socinfo, serial_num) <= item_size) {
qs->attr.serial_number = devm_kasprintf(&pdev->dev, GFP_KERNEL,
"%u",
le32_to_cpu(info->serial_num));
+ if (!qs->attr.serial_number)
+ return -ENOMEM;
+ }
qs->soc_dev = soc_device_register(&qs->attr);
if (IS_ERR(qs->soc_dev))
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH AUTOSEL 5.4 2/5] regulator: rk808: Add apply_bit for BUCK3 on RK809
2024-11-12 10:38 [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value Sasha Levin
@ 2024-11-12 10:38 ` Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 3/5] ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate() Sasha Levin
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2024-11-12 10:38 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Mikhail Rudenko, Mark Brown, Sasha Levin, lgirdwood
From: Mikhail Rudenko <mike.rudenko@gmail.com>
[ Upstream commit 5e53e4a66bc7430dd2d11c18a86410e3a38d2940 ]
Currently, RK809's BUCK3 regulator is modelled in the driver as a
configurable regulator with 0.5-2.4V voltage range. But the voltage
setting is not actually applied, because when bit 6 of
PMIC_POWER_CONFIG register is set to 0 (default), BUCK3 output voltage
is determined by the external feedback resistor. Fix this, by setting
bit 6 when voltage selection is set. Existing users which do not
specify voltage constraints in their device trees will not be affected
by this change, since no voltage setting is applied in those cases,
and bit 6 is not enabled.
Signed-off-by: Mikhail Rudenko <mike.rudenko@gmail.com>
Link: https://patch.msgid.link/20241017-rk809-dcdc3-v1-1-e3c3de92f39c@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/regulator/rk808-regulator.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c
index 97c846c19c2f6..da34af37f191f 100644
--- a/drivers/regulator/rk808-regulator.c
+++ b/drivers/regulator/rk808-regulator.c
@@ -959,6 +959,8 @@ static const struct regulator_desc rk809_reg[] = {
.n_linear_ranges = ARRAY_SIZE(rk817_buck1_voltage_ranges),
.vsel_reg = RK817_BUCK3_ON_VSEL_REG,
.vsel_mask = RK817_BUCK_VSEL_MASK,
+ .apply_reg = RK817_POWER_CONFIG,
+ .apply_bit = RK817_BUCK3_FB_RES_INTER,
.enable_reg = RK817_POWER_EN_REG(0),
.enable_mask = ENABLE_MASK(RK817_ID_DCDC3),
.enable_val = ENABLE_MASK(RK817_ID_DCDC3),
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH AUTOSEL 5.4 3/5] ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate()
2024-11-12 10:38 [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 2/5] regulator: rk808: Add apply_bit for BUCK3 on RK809 Sasha Levin
@ 2024-11-12 10:38 ` Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 4/5] ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 5/5] proc/softirqs: replace seq_printf with seq_put_decimal_ull_width Sasha Levin
3 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2024-11-12 10:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Luo Yifan, Mark Brown, Sasha Levin, olivier.moysan,
arnaud.pouliquen, lgirdwood, perex, tiwai, mcoquelin.stm32,
alexandre.torgue, alsa-devel, linux-sound, linux-stm32,
linux-arm-kernel
From: Luo Yifan <luoyifan@cmss.chinamobile.com>
[ Upstream commit 63c1c87993e0e5bb11bced3d8224446a2bc62338 ]
This patch checks if div is less than or equal to zero (div <= 0). If
div is zero or negative, the function returns -EINVAL, ensuring the
division operation (*prate / div) is safe to perform.
Signed-off-by: Luo Yifan <luoyifan@cmss.chinamobile.com>
Link: https://patch.msgid.link/20241106014654.206860-1-luoyifan@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/stm/stm32_sai_sub.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c
index 7e965848796c3..b7dc9d3192597 100644
--- a/sound/soc/stm/stm32_sai_sub.c
+++ b/sound/soc/stm/stm32_sai_sub.c
@@ -379,8 +379,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate,
int div;
div = stm32_sai_get_clk_div(sai, *prate, rate);
- if (div < 0)
- return div;
+ if (div <= 0)
+ return -EINVAL;
mclk->freq = *prate / div;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH AUTOSEL 5.4 4/5] ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div()
2024-11-12 10:38 [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 2/5] regulator: rk808: Add apply_bit for BUCK3 on RK809 Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 3/5] ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate() Sasha Levin
@ 2024-11-12 10:38 ` Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 5/5] proc/softirqs: replace seq_printf with seq_put_decimal_ull_width Sasha Levin
3 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2024-11-12 10:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Luo Yifan, Olivier Moysan, Mark Brown, Sasha Levin,
arnaud.pouliquen, lgirdwood, perex, tiwai, mcoquelin.stm32,
alexandre.torgue, alsa-devel, linux-sound, linux-stm32,
linux-arm-kernel
From: Luo Yifan <luoyifan@cmss.chinamobile.com>
[ Upstream commit 23569c8b314925bdb70dd1a7b63cfe6100868315 ]
This patch checks if div is less than or equal to zero (div <= 0). If
div is zero or negative, the function returns -EINVAL, ensuring the
division operation is safe to perform.
Signed-off-by: Luo Yifan <luoyifan@cmss.chinamobile.com>
Reviewed-by: Olivier Moysan <olivier.moysan@foss.st.com>
Link: https://patch.msgid.link/20241107015936.211902-1-luoyifan@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/stm/stm32_sai_sub.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c
index b7dc9d3192597..e8cd58c0838ee 100644
--- a/sound/soc/stm/stm32_sai_sub.c
+++ b/sound/soc/stm/stm32_sai_sub.c
@@ -318,7 +318,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
int div;
div = DIV_ROUND_CLOSEST(input_rate, output_rate);
- if (div > SAI_XCR1_MCKDIV_MAX(version)) {
+ if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) {
dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
return -EINVAL;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH AUTOSEL 5.4 5/5] proc/softirqs: replace seq_printf with seq_put_decimal_ull_width
2024-11-12 10:38 [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value Sasha Levin
` (2 preceding siblings ...)
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 4/5] ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() Sasha Levin
@ 2024-11-12 10:38 ` Sasha Levin
3 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2024-11-12 10:38 UTC (permalink / raw)
To: linux-kernel, stable
Cc: David Wang, Linus Torvalds, Sasha Levin, linux-fsdevel
From: David Wang <00107082@163.com>
[ Upstream commit 84b9749a3a704dcc824a88aa8267247c801d51e4 ]
seq_printf is costy, on a system with n CPUs, reading /proc/softirqs
would yield 10*n decimal values, and the extra cost parsing format string
grows linearly with number of cpus. Replace seq_printf with
seq_put_decimal_ull_width have significant performance improvement.
On an 8CPUs system, reading /proc/softirqs show ~40% performance
gain with this patch.
Signed-off-by: David Wang <00107082@163.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/proc/softirqs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/proc/softirqs.c b/fs/proc/softirqs.c
index 12901dcf57e2b..d8f4e7d54d002 100644
--- a/fs/proc/softirqs.c
+++ b/fs/proc/softirqs.c
@@ -19,7 +19,7 @@ static int show_softirqs(struct seq_file *p, void *v)
for (i = 0; i < NR_SOFTIRQS; i++) {
seq_printf(p, "%12s:", softirq_to_name[i]);
for_each_possible_cpu(j)
- seq_printf(p, " %10u", kstat_softirqs_cpu(i, j));
+ seq_put_decimal_ull_width(p, " ", kstat_softirqs_cpu(i, j), 10);
seq_putc(p, '\n');
}
return 0;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-11-12 10:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-12 10:38 [PATCH AUTOSEL 5.4 1/5] soc: qcom: Add check devm_kasprintf() returned value Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 2/5] regulator: rk808: Add apply_bit for BUCK3 on RK809 Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 3/5] ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate() Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 4/5] ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() Sasha Levin
2024-11-12 10:38 ` [PATCH AUTOSEL 5.4 5/5] proc/softirqs: replace seq_printf with seq_put_decimal_ull_width Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox