+ if (llist_empty(lead)) {
+ llist_append(lead, ®ion->head);
+ return region;
+ }
+
+ struct mm_region *pos, *n;
+ llist_for_each(pos, n, lead, head)
+ {
+ if (start >= pos->end && end <= n->start) {
+ break;
+ }
+ }
+
+ llist_insert_after(&pos->head, ®ion->head);
+ return region;