History

ASoC: rt711-sdca: fix kernel NULL pointer dereference when IO error

The initial settings will be written before the codec probe function. But, the rt711->component doesn't be assigned yet. If IO error happened during initial settings operations, it will cause the kernel panic. This patch changed component->dev to slave->dev to fix this issue.

Shuming Fan committed 4 years ago

Commit 1df793d1 parent c6a5f221 file · +2 −2Browse files

Unified · Split

sound/soc/codecs/rt711-sdca.c+2−2
@@ -34,7 +34,7 @@ static int rt711_sdca_index_write(struct rt711_sdca_priv *rt711, · 33 unmodified lines
34 34
35 ret = regmap_write(regmap, addr, value);35 ret = regmap_write(regmap, addr, value);
36 if (ret < 0)36 if (ret < 0)
37 dev_err(rt711->component->dev,37 dev_err(&rt711->slave->dev,
38 "Failed to set private value: %06x <= %04x ret=%d\n",38 "Failed to set private value: %06x <= %04x ret=%d\n",
39 addr, value, ret);39 addr, value, ret);
40 40
@@ -50,7 +50,7 @@ static int rt711_sdca_index_read(struct rt711_sdca_priv *rt711, · 9 unmodified lines
50 50
51 ret = regmap_read(regmap, addr, value);51 ret = regmap_read(regmap, addr, value);
52 if (ret < 0)52 if (ret < 0)
53 dev_err(rt711->component->dev,53 dev_err(&rt711->slave->dev,
54 "Failed to get private value: %06x => %04x ret=%d\n",54 "Failed to get private value: %06x => %04x ret=%d\n",
55 addr, *value, ret);55 addr, *value, ret);
56 56