Prev: [patch 063/123] hwmon: (tmp421) Fix temperature conversions
Next: [patch 061/123] gpiolib: Actually set output state in wm831x_gpio_direction_output()
From: Greg KH on 12 Mar 2010 20:30 2.6.33-stable review patch. If anyone has any objections, please let me know. ----------------- From: Daniel Mack <daniel(a)caiaq.de> commit e555317c083fda01f516d2153589e82514e20e70 upstream. 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(a)caiaq.de> Acked-by: Liam Girdwood <lrg(a)slimlogic.co.uk> Signed-off-by: Mark Brown <broonie(a)opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de> --- sound/soc/codecs/ak4104.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/sound/soc/codecs/ak4104.c +++ b/sound/soc/codecs/ak4104.c @@ -90,12 +90,10 @@ static int ak4104_spi_write(struct snd_s 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; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |