diff --git a/src/fd.c b/src/fd.c index d6c140c0c..1af64e543 100644 --- a/src/fd.c +++ b/src/fd.c @@ -198,7 +198,7 @@ void fd_add_to_fd_list(volatile struct fdlist *list, int fd) last = list->last; old = -1; - fdtab[fd].cache.prev = last; + fdtab[fd].cache.prev = -2; /* Make sure the "prev" store is visible before we update the last entry */ __ha_barrier_store(); @@ -224,6 +224,7 @@ void fd_add_to_fd_list(volatile struct fdlist *list, int fd) /* since we're alone at the end of the list and still locked(-2), * we know noone tried to add past us. Mark the end of list. */ + fdtab[fd].cache.prev = last; fdtab[fd].cache.next = -1; __ha_barrier_store(); done: