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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user