> struct psref { > - LIST_ENTRY(psref) psref_entry; > + SLIST_ENTRY(psref) psref_entry; > + /* To keep ABI with LIST_ENTRY(psref) version. */ > + void *psref_unused0; Isn't it somewhat fishy to manally pad this, knowing how big a [S]LIST_ENTRY is? Wouldn't it be cleaner to use a union?