OSDN Git Service

ALSA: ice1712: Check correct return value to snd_i2c_sendbytes (EWS/DMX 6Fire)
authorRui Nuno Capela <rncbc@rncbc.org>
Fri, 7 Jun 2019 14:13:37 +0000 (15:13 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 11 Jun 2019 10:06:54 +0000 (12:06 +0200)
Check for exact and correct return value to snd_i2c_sendbytes
call for EWS/DMX 6Fire (snd_ice1712).

Fixes a systemic error on every boot starting from kernel 5.1
onwards to snd_ice1712 driver ("cannot send pca") on Terratec
EWS/DMX 6Fire PCI soundcards.

Check for exact and correct return value to snd_i2c_sendbytes
call for EWS/DMX 6Fire (snd_ice1712).

Fixes a systemic error on every boot to snd_ice1712 driver
("cannot send pca") on Terratec EWS/DMX 6Fire PCI soundcards.

Fixes: c99776cc4018 ("ALSA: ice1712: fix a missing check of snd_i2c_sendbytes")
Signed-off-by: Rui Nuno Capela <rncbc@rncbc.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/ews.c

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