diff --git a/include/common/mini-clist.h b/include/common/mini-clist.h index 642a7a36a..3d519197e 100644 --- a/include/common/mini-clist.h +++ b/include/common/mini-clist.h @@ -221,6 +221,11 @@ struct cond_wordlist { __ha_barrier_store(); \ continue; \ } \ + if ((el)->next != (el) || (el)->prev != (el)) { \ + (n)->prev = p; \ + (lh)->next = n; \ + break; \ + } \ (el)->next = n; \ (el)->prev = p; \ __ha_barrier_store(); \ @@ -246,6 +251,11 @@ struct cond_wordlist { __ha_barrier_store(); \ continue; \ } \ + if ((el)->next != (el) || (el)->prev != (el)) { \ + p->next = n; \ + (lh)->prev = p; \ + break; \ + } \ (el)->next = n; \ (el)->prev = p; \ __ha_barrier_store(); \