ASoC: hdac_hdmi: don't update the iterator in pcm list remove
Fix not to update the iterator element, instead use list_del to remove entry from the list. This fixes the following coccinelle and static checker warning: sound/soc/codecs/hdac_hdmi.c:1884:2-21:iterator with update on line 1885 sound/soc/codecs/hdac_hdmi.c:2011 hdac_hdmi_dev_remove() error: potential NULL dereference 'port'. Fixes: e0e5d3e5a53b('ASoC: hdac_hdmi: Add support for multiple ports to a PCM') Reported-by: Julia Lawall <Julia.Lawall@lip6.fr> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
04c8f2bf91
commit
2fe42dd0f1
|
@ -1997,7 +1997,7 @@ static int hdac_hdmi_dev_remove(struct hdac_ext_device *edev)
|
|||
struct hdac_hdmi_pin *pin, *pin_next;
|
||||
struct hdac_hdmi_cvt *cvt, *cvt_next;
|
||||
struct hdac_hdmi_pcm *pcm, *pcm_next;
|
||||
struct hdac_hdmi_port *port;
|
||||
struct hdac_hdmi_port *port, *port_next;
|
||||
int i;
|
||||
|
||||
snd_soc_unregister_codec(&edev->hdac.dev);
|
||||
|
@ -2007,8 +2007,9 @@ static int hdac_hdmi_dev_remove(struct hdac_ext_device *edev)
|
|||
if (list_empty(&pcm->port_list))
|
||||
continue;
|
||||
|
||||
list_for_each_entry(port, &pcm->port_list, head)
|
||||
port = NULL;
|
||||
list_for_each_entry_safe(port, port_next,
|
||||
&pcm->port_list, head)
|
||||
list_del(&port->head);
|
||||
|
||||
list_del(&pcm->head);
|
||||
kfree(pcm);
|
||||
|
|
Loading…
Reference in New Issue