ASoC: soc-cache: Use BUG_ON() for unsupported hw_read() calls
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Mon, 8 Nov 2010 15:37:07 +0000 (15:37 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 8 Nov 2010 16:51:30 +0000 (16:51 +0000)
Instead of dereferencing a NULL function pointer and falling apart
use BUG_ON() for any unimplemented hw_read() calls.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-cache.c

index 8785a0c918d2841f3bf3d9c5713cad0481005286..e7479988deca054ebe2d880f181147a55098368a 100644 (file)
@@ -25,6 +25,7 @@ static unsigned int snd_soc_4_12_read(struct snd_soc_codec *codec,
                        if (codec->cache_only)
                                return -1;
 
+                       BUG_ON(!codec->hw_read);
                        return codec->hw_read(codec, reg);
        }
 
@@ -99,6 +100,7 @@ static unsigned int snd_soc_7_9_read(struct snd_soc_codec *codec,
                        if (codec->cache_only)
                                return -1;
 
+                       BUG_ON(!codec->hw_read);
                        return codec->hw_read(codec, reg);
        }
 
@@ -199,6 +201,7 @@ static unsigned int snd_soc_8_8_read(struct snd_soc_codec *codec,
                        if (codec->cache_only)
                                return -1;
 
+                       BUG_ON(!codec->hw_read);
                        return codec->hw_read(codec, reg);
        }
 
@@ -270,6 +273,7 @@ static unsigned int snd_soc_8_16_read(struct snd_soc_codec *codec,
                if (codec->cache_only)
                        return -1;
 
+               BUG_ON(!codec->hw_read);
                return codec->hw_read(codec, reg);
        } else {
                return cache[reg];
@@ -420,6 +424,7 @@ static unsigned int snd_soc_16_8_read(struct snd_soc_codec *codec,
                        if (codec->cache_only)
                                return -1;
 
+                       BUG_ON(!codec->hw_read);
                        return codec->hw_read(codec, reg);
        }
 
@@ -531,6 +536,7 @@ static unsigned int snd_soc_16_16_read(struct snd_soc_codec *codec,
                if (codec->cache_only)
                        return -1;
 
+               BUG_ON(!codec->hw_read);
                return codec->hw_read(codec, reg);
        }