On Fri 01 Jun 16:32 PDT 2018, Srinivas Kandagatla wrote:No, I will respin the patch with this change.
@@ -1380,11 +1380,13 @@ static void qcom_smd_edge_release(struct device *dev)
{
struct qcom_smd_channel *channel;
struct qcom_smd_edge *edge = to_smd_edge(dev);
+ struct list_head *this, *tmp;
- list_for_each_entry(channel, &edge->channels, list) {
- SET_RX_CHANNEL_INFO(channel, state, SMD_CHANNEL_CLOSED);
- SET_RX_CHANNEL_INFO(channel, head, 0);
- SET_RX_CHANNEL_INFO(channel, tail, 0);
+ list_for_each_safe(this, tmp, &edge->channels) {
+ channel = list_entry(this, struct qcom_smd_channel, list);
Is there a reason not to use list_for_each_entry_safe()?
+ list_del(&channel->list);
+ kfree(channel->name);
+ kfree(channel);
Regards,
Bjorn