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

From: Huang\, Ying
Date: Wed Dec 27 2017 - 19:47:41 EST


Vitaly Wool <vitalywool@xxxxxxxxx> writes:

> 2017-12-22 14:57 GMT+01:00 Huang, Ying <ying.huang@xxxxxxxxx>:
>
>> 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.
>>
>>
>>
> I'm going to come up with a patch to binder that uses these specific
> extensions, so I expect there'll be some users for this.

I think it is better to keep this in binder unless there are other
users.

Best Regards,
Huang, Ying

> Thanks,
> Vitaly