The page fault is happening in __wake_up_common() On the 3rd time through the list_for_each() block, a wait_queue_t *curr = list_entry(tmp, wait_queue_t, task_list); line returns a curr of 0xFFFFFFF8 and it page faults on the p = curr->task line because obviously that's a bad address. (page faults on 0xFFFFFFFC) I'm sorry to write to both lists but neither has a lot of activity and I'm hoping somebody on one of the lists could help. Steve