Loading drivers/soc/qcom/smp2p.c +7 −4 Original line number Diff line number Diff line Loading @@ -574,6 +574,7 @@ static int smp2p_parse_ipc(struct qcom_smp2p *smp2p) static int qcom_smp2p_probe(struct platform_device *pdev) { struct smp2p_entry *entry; struct smp2p_entry *next_entry; struct device_node *node; struct qcom_smp2p *smp2p; const char *key; Loading Loading @@ -687,12 +688,12 @@ static int qcom_smp2p_probe(struct platform_device *pdev) wakeup_source_unregister(smp2p->ws); unwind_interfaces: list_for_each_entry(entry, &smp2p->inbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->inbound, node) { irq_domain_remove(entry->domain); kfree(entry); } list_for_each_entry(entry, &smp2p->outbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->outbound, node) { qcom_smem_state_unregister(entry->state); kfree(entry); } Loading @@ -713,15 +714,16 @@ static int qcom_smp2p_remove(struct platform_device *pdev) { struct qcom_smp2p *smp2p = platform_get_drvdata(pdev); struct smp2p_entry *entry; struct smp2p_entry *next_entry; wakeup_source_unregister(smp2p->ws); list_for_each_entry(entry, &smp2p->inbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->inbound, node) { irq_domain_remove(entry->domain); kfree(entry); } list_for_each_entry(entry, &smp2p->outbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->outbound, node) { qcom_smem_state_unregister(entry->state); kfree(entry); } Loading Loading @@ -774,6 +776,7 @@ static int qcom_smp2p_restore(struct device *dev) enable_irq_wake(smp2p->irq); /* Kick the outgoing edge after allocating entries */ qcom_smp2p_kick(smp2p); return ret; rel_entry: kfree(entry); Loading Loading
drivers/soc/qcom/smp2p.c +7 −4 Original line number Diff line number Diff line Loading @@ -574,6 +574,7 @@ static int smp2p_parse_ipc(struct qcom_smp2p *smp2p) static int qcom_smp2p_probe(struct platform_device *pdev) { struct smp2p_entry *entry; struct smp2p_entry *next_entry; struct device_node *node; struct qcom_smp2p *smp2p; const char *key; Loading Loading @@ -687,12 +688,12 @@ static int qcom_smp2p_probe(struct platform_device *pdev) wakeup_source_unregister(smp2p->ws); unwind_interfaces: list_for_each_entry(entry, &smp2p->inbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->inbound, node) { irq_domain_remove(entry->domain); kfree(entry); } list_for_each_entry(entry, &smp2p->outbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->outbound, node) { qcom_smem_state_unregister(entry->state); kfree(entry); } Loading @@ -713,15 +714,16 @@ static int qcom_smp2p_remove(struct platform_device *pdev) { struct qcom_smp2p *smp2p = platform_get_drvdata(pdev); struct smp2p_entry *entry; struct smp2p_entry *next_entry; wakeup_source_unregister(smp2p->ws); list_for_each_entry(entry, &smp2p->inbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->inbound, node) { irq_domain_remove(entry->domain); kfree(entry); } list_for_each_entry(entry, &smp2p->outbound, node) { list_for_each_entry_safe(entry, next_entry, &smp2p->outbound, node) { qcom_smem_state_unregister(entry->state); kfree(entry); } Loading Loading @@ -774,6 +776,7 @@ static int qcom_smp2p_restore(struct device *dev) enable_irq_wake(smp2p->irq); /* Kick the outgoing edge after allocating entries */ qcom_smp2p_kick(smp2p); return ret; rel_entry: kfree(entry); Loading