ASoC: hdac_hdmi: Fix potential NULL dereference
Static checker warns: Pointer 'hlink' returned from call to function 'snd_hdac_ext_bus_get_link' at line may be NULL and will be dereferenced" So we should always check the return of snd_hdac_ext_bus_get_link() before referencing the link pointer Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
0d68210400
Коммит
7edf4db158
|
@ -1474,6 +1474,11 @@ static int hdmi_codec_probe(struct snd_soc_codec *codec)
|
|||
* exit, we call pm_runtime_suspend() so that will do for us
|
||||
*/
|
||||
hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev));
|
||||
if (!hlink) {
|
||||
dev_err(&edev->hdac.dev, "hdac link not found\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
snd_hdac_ext_bus_link_get(edev->ebus, hlink);
|
||||
|
||||
ret = create_fill_widget_route_map(dapm);
|
||||
|
@ -1634,6 +1639,11 @@ static int hdac_hdmi_dev_probe(struct hdac_ext_device *edev)
|
|||
|
||||
/* hold the ref while we probe */
|
||||
hlink = snd_hdac_ext_bus_get_link(edev->ebus, dev_name(&edev->hdac.dev));
|
||||
if (!hlink) {
|
||||
dev_err(&edev->hdac.dev, "hdac link not found\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
snd_hdac_ext_bus_link_get(edev->ebus, hlink);
|
||||
|
||||
hdmi_priv = devm_kzalloc(&codec->dev, sizeof(*hdmi_priv), GFP_KERNEL);
|
||||
|
@ -1744,6 +1754,11 @@ static int hdac_hdmi_runtime_suspend(struct device *dev)
|
|||
}
|
||||
|
||||
hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev));
|
||||
if (!hlink) {
|
||||
dev_err(dev, "hdac link not found\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
snd_hdac_ext_bus_link_put(ebus, hlink);
|
||||
|
||||
return 0;
|
||||
|
@ -1765,6 +1780,11 @@ static int hdac_hdmi_runtime_resume(struct device *dev)
|
|||
return 0;
|
||||
|
||||
hlink = snd_hdac_ext_bus_get_link(ebus, dev_name(dev));
|
||||
if (!hlink) {
|
||||
dev_err(dev, "hdac link not found\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
snd_hdac_ext_bus_link_get(ebus, hlink);
|
||||
|
||||
err = snd_hdac_display_power(bus, true);
|
||||
|
|
Загрузка…
Ссылка в новой задаче