diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 254dd1c6914d14926f23ab29f6005cfa0d367d15..26f17323ef19dc522616cef49704dd83a75a1b8d 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2433,14 +2433,12 @@ int snd_soc_put_volsw_2r_sx(struct snd_kcontrol *kcontrol,
 	if (oval != val) {
 		ret = snd_soc_write(codec, mc->reg, val);
 		if (ret < 0)
-			return 0;
-		ret = 1;
+			return ret;
 	}
 	if (ovalr != valr) {
 		ret = snd_soc_write(codec, mc->rreg, valr);
 		if (ret < 0)
-			return 0;
-		ret = 1;
+			return ret;
 	}
 
 	return 0;