All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ALSA: ASoC: fix ak4104 register array access
@ 2010-02-26  6:36 Daniel Mack
  2010-03-03 19:19 ` Mark Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel Mack @ 2010-02-26  6:36 UTC (permalink / raw)
  To: alsa-devel; +Cc: Mark Brown, stable

Don't touch the variable 'reg' to construct the value for the actual SPI
transport. This variable is again used to access the driver's register
cache, and so random memory is overwritten.
Compute the value in-place instead.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
---
 sound/soc/codecs/ak4104.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/sound/soc/codecs/ak4104.c b/sound/soc/codecs/ak4104.c
index b9ef7e4..b68d99f 100644
--- a/sound/soc/codecs/ak4104.c
+++ b/sound/soc/codecs/ak4104.c
@@ -90,12 +90,10 @@ static int ak4104_spi_write(struct snd_soc_codec *codec, unsigned int reg,
 	if (reg >= codec->reg_cache_size)
 		return -EINVAL;
 
-	reg &= AK4104_REG_MASK;
-	reg |= AK4104_WRITE;
-
 	/* only write to the hardware if value has changed */
 	if (cache[reg] != value) {
-		u8 tmp[2] = { reg, value };
+		u8 tmp[2] = { (reg & AK4104_REG_MASK) | AK4104_WRITE, value };
+
 		if (spi_write(spi, tmp, sizeof(tmp))) {
 			dev_err(&spi->dev, "SPI write failed\n");
 			return -EIO;
-- 
1.6.3.3

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

* Re: [PATCH] ALSA: ASoC: fix ak4104 register array access
  2010-02-26  6:36 [PATCH] ALSA: ASoC: fix ak4104 register array access Daniel Mack
@ 2010-03-03 19:19 ` Mark Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2010-03-03 19:19 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel, stable

On Fri, Feb 26, 2010 at 02:36:54PM +0800, Daniel Mack wrote:
> Don't touch the variable 'reg' to construct the value for the actual SPI
> transport. This variable is again used to access the driver's register
> cache, and so random memory is overwritten.
> Compute the value in-place instead.
> 
> Signed-off-by: Daniel Mack <daniel@caiaq.de>
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> Cc: stable@kernel.org

Applied, thanks.  Please CC Liam on ASoC commits.

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

end of thread, other threads:[~2010-03-03 19:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-26  6:36 [PATCH] ALSA: ASoC: fix ak4104 register array access Daniel Mack
2010-03-03 19:19 ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.