Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH] firmware: cs_dsp: Don't allow writes to read-only controls
@ 2024-07-02 11:08 Richard Fitzgerald
  2024-07-02 18:03 ` Mark Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Fitzgerald @ 2024-07-02 11:08 UTC (permalink / raw)
  To: broonie; +Cc: alsa-devel, linux-sound, linux-kernel, patches,
	Richard Fitzgerald

Add a check to cs_dsp_coeff_write_ctrl() to abort if the control
is not writeable.

The cs_dsp code originated as an ASoC driver (wm_adsp) where all
controls were exported as ALSA controls. It relied on ALSA to
enforce the read-only permission. Now that the code has been
separated from ALSA/ASoC it must perform its own permission check.

This isn't currently causing any problems so there shouldn't be any
need to backport this. If the client of cs_dsp exposes the control as
an ALSA control, it should set permissions on that ALSA control to
protect it. The few uses of cs_dsp_coeff_write_ctrl() inside drivers
are for writable controls.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
---
 drivers/firmware/cirrus/cs_dsp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/firmware/cirrus/cs_dsp.c b/drivers/firmware/cirrus/cs_dsp.c
index 16484ab9b09d..be8747d227db 100644
--- a/drivers/firmware/cirrus/cs_dsp.c
+++ b/drivers/firmware/cirrus/cs_dsp.c
@@ -796,6 +796,9 @@ int cs_dsp_coeff_write_ctrl(struct cs_dsp_coeff_ctl *ctl,
 
 	lockdep_assert_held(&ctl->dsp->pwr_lock);
 
+	if (ctl->flags && !(ctl->flags & WMFW_CTL_FLAG_WRITEABLE))
+		return -EPERM;
+
 	if (len + off * sizeof(u32) > ctl->len)
 		return -EINVAL;
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] firmware: cs_dsp: Don't allow writes to read-only controls
  2024-07-02 11:08 [PATCH] firmware: cs_dsp: Don't allow writes to read-only controls Richard Fitzgerald
@ 2024-07-02 18:03 ` Mark Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2024-07-02 18:03 UTC (permalink / raw)
  To: Richard Fitzgerald; +Cc: alsa-devel, linux-sound, linux-kernel, patches

On Tue, 02 Jul 2024 12:08:09 +0100, Richard Fitzgerald wrote:
> Add a check to cs_dsp_coeff_write_ctrl() to abort if the control
> is not writeable.
> 
> The cs_dsp code originated as an ASoC driver (wm_adsp) where all
> controls were exported as ALSA controls. It relied on ALSA to
> enforce the read-only permission. Now that the code has been
> separated from ALSA/ASoC it must perform its own permission check.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] firmware: cs_dsp: Don't allow writes to read-only controls
      commit: 62412a9357b16a4e39dc582deb2e2a682b92524c

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-07-02 18:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-02 11:08 [PATCH] firmware: cs_dsp: Don't allow writes to read-only controls Richard Fitzgerald
2024-07-02 18:03 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox