ALSA: ice1712: fix a missing check of snd_i2c_sendbytes
authorAditya Pakki <pakki001@umn.edu>
Sun, 6 Jan 2019 16:31:44 +0000 (10:31 -0600)
committerTakashi Iwai <tiwai@suse.de>
Mon, 7 Jan 2019 10:57:54 +0000 (11:57 +0100)
snd_i2c_sendbytes could fail. The fix checks its return value: if it
fails, issues an error message and returns with its error code.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/ews.c

index b8af747..7646c93 100644 (file)
@@ -826,7 +826,12 @@ static int snd_ice1712_6fire_read_pca(struct snd_ice1712 *ice, unsigned char reg
 
        snd_i2c_lock(ice->i2c);
        byte = reg;
-       snd_i2c_sendbytes(spec->i2cdevs[EWS_I2C_6FIRE], &byte, 1);
+       if (snd_i2c_sendbytes(spec->i2cdevs[EWS_I2C_6FIRE], &byte, 1)) {
+               snd_i2c_unlock(ice->i2c);
+               dev_err(ice->card->dev, "cannot send pca\n");
+               return -EIO;
+       }
+
        byte = 0;
        if (snd_i2c_readbytes(spec->i2cdevs[EWS_I2C_6FIRE], &byte, 1) != 1) {
                snd_i2c_unlock(ice->i2c);