Hi, This diff that makes SLIST_REMOVE invalidate pointer more paranoid. I am running it for a while now without problems.
ok to put in in? bluhm Index: sys/queue.h =================================================================== RCS file: /data/mirror/openbsd/cvs/src/sys/sys/queue.h,v retrieving revision 1.38 diff -u -p -r1.38 queue.h --- sys/queue.h 3 Jul 2013 15:05:21 -0000 1.38 +++ sys/queue.h 19 Feb 2015 21:29:54 -0000 @@ -157,8 +157,8 @@ struct { \ curelm = curelm->field.sle_next; \ curelm->field.sle_next = \ curelm->field.sle_next->field.sle_next; \ - _Q_INVALIDATE((elm)->field.sle_next); \ } \ + _Q_INVALIDATE((elm)->field.sle_next); \ } while (0) /*