On Sat, 28 Dec 2019 15:46:31 -0800 Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> wrote: > + > +next: > + found = false; > + > + list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { > + if (i == channel->dev_num && > + guid_equal(&channel->offermsg.offer.if_type, > + &newchannel->offermsg.offer.if_type)) { > + found = true; > + break; > + } > + } > + > + if (found) { > + i++; > + goto next; > + } > + Overall, keeping track of dev_num is a good solution. I prefer not having a loop coded with goto's. Why not a nested loop. Also, there already is a search of the channel list in vmbus_process_offer() so why is another lookup needed?