diff options
Diffstat (limited to 'lib/llist.c')
| -rw-r--r-- | lib/llist.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/llist.c b/lib/llist.c index 4a70d120138c..f76196d07409 100644 --- a/lib/llist.c +++ b/lib/llist.c | |||
| @@ -81,3 +81,25 @@ struct llist_node *llist_del_first(struct llist_head *head) | |||
| 81 | return entry; | 81 | return entry; |
| 82 | } | 82 | } |
| 83 | EXPORT_SYMBOL_GPL(llist_del_first); | 83 | EXPORT_SYMBOL_GPL(llist_del_first); |
| 84 | |||
| 85 | /** | ||
| 86 | * llist_reverse_order - reverse order of a llist chain | ||
| 87 | * @head: first item of the list to be reversed | ||
| 88 | * | ||
| 89 | * Reverse the order of a chain of llist entries and return the | ||
| 90 | * new first entry. | ||
| 91 | */ | ||
| 92 | struct llist_node *llist_reverse_order(struct llist_node *head) | ||
| 93 | { | ||
| 94 | struct llist_node *new_head = NULL; | ||
| 95 | |||
| 96 | while (head) { | ||
| 97 | struct llist_node *tmp = head; | ||
| 98 | head = head->next; | ||
| 99 | tmp->next = new_head; | ||
| 100 | new_head = tmp; | ||
| 101 | } | ||
| 102 | |||
| 103 | return new_head; | ||
| 104 | } | ||
| 105 | EXPORT_SYMBOL_GPL(llist_reverse_order); | ||
