From: Jake H. <jh...@po...> - 2005-03-17 01:53:26
|
Daniel Gryniewicz wrote: > Hi, all. > > I'm back from vacation, and have some time to work on Syllable. > > Attached is a patch against current CVS to turn the DLIST into a tail > queue. This allows DLIST_ADDTAIL() and DLIST_LAST() at the cost of a > pointer in the head (negligible), and the requirement of the head > pointer when removing or appending. I looked at your patch and everything seems correct, except that DLIST_ON_LIST() should test list_pprev for NULL instead of list_next, which could be NULL if the entry is the last item on the list. For this to work, DLIST_REMOVE() needs to reset list_pprev to NULL. I've attached my modified version of your patch. Unfortunately, when I try to build a kernel with the updated list macros, it freezes at the very beginning of the boot sequence, immediately after the "do_lock_semaphore_ex( -1 ) called with invalid semaphore id!!" line. So far, I have no idea why this is happening. -Jake |