Re: [PATCH/RFC] llist: add llist_[add|del_first]_exclusive

From: Huang\, Ying
Date: Fri Dec 22 2017 - 09:00:29 EST


Vitaly Wool <vitalywool@xxxxxxxxx> writes:

> 2017-12-20 1:57 GMT+01:00 Huang, Ying <ying.huang@xxxxxxxxx>:
>
> <snip>
>
>>
>> > Could you please elaborate how this would be implemented "on top"?
>>
>> struct llist_node *my_del_first_exclusive(struct llist_head *head)
>> {
>> struct llist_node *node = llist_del_first(head);
>>
>> if (node)
>> node->next = LLIST_NODE_UNLISTED;
>> }
>>
>> bool my_add_exclusive(struct llist_node *node, struct llist_head *head)
>> {
>> if (node->next != LLIST_NODE_UNLIST)
>> return false;
>> if (cmpxchg(&node->next, LLIST_NODE_UNLIST, NULL) !=
>> LLIST_NODE_UNLIST)
>> return false;
>> llist_add(node, head);
>> return true;
>> }
>>
>
> That would work, thanks. I'll update the patch.

Is there any other users except your code? If no, I think it's better
to keep it with its only user instead part of llist library at least for
now. Because I don't know whether the usage model is popular.

Best Regards,
Huang, Ying

> Thanks,
> Vitaly