On 06/19/2018 12:11 PM, Kevin Traynor wrote:
>> +            if (per_port_mp && rte_errno == EEXIST) {
>> +                LIST_FOR_EACH (next, list_node, &dpdk_mp_list) {
>> +                    if (dmp->mp == next->mp) {
>> +                        rte_free(dmp);
>> +                        dmp = next;
>> +                        dmp->refcount = 1;
>> +                    }
>> +                }
>> +            }
>> +            else {
>> +                ovs_list_push_back(&dpdk_mp_list, &dmp->list_node);
>> +            }
> I think you need to increment refcount and use the safe list option. How
> about
> 

Actually no, you don't need the safe list option, as it's the dmp that
is being freed

> if (rte_errno == EEXIST) {
>     LIST_FOR_EACH_SAFE (next, list_node, &dpdk_mp_list) {
>         if (dmp->mp == next->mp) {
>             next->refcount++;
>             rte_free(dmp);
>             break;
>         }
>     }
> } else {
>     dmp->refcount++;
>     ovs_list_push_back(&dpdk_mp_list, &dmp->list_node);
> }
> 

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to