Looks OK to me, queued for 2.6.21, except: > +#include <linux/completion.h> This can just be <linux/wait.h>, because you're only using wait_queue_head_t and not struct completion, right? I fixed this up before merging.