In kcopyd.c, change the "flags" arguments to the spin_lock_irqsave() calls to unsigned long's. Most architectures don't mind an int, but ppc64 gives compiler warnings (ppc32 and x86_64 likely will as well). --- linux-2.4.20a/drivers/md/kcopyd.c Fri Mar 28 14:48:31 2003 +++ linux-2.4.20b/drivers/md/kcopyd.c Thu Mar 27 10:18:34 2003 @@ -155,7 +155,7 @@ static struct buffer_head *alloc_buffer(void) { struct buffer_head *r; - int flags; + unsigned long flags; spin_lock_irqsave(&_buffer_lock, flags); @@ -177,7 +177,8 @@ */ static void free_buffer(struct buffer_head *bh) { - int flags, was_empty; + unsigned long flags; + int was_empty; spin_lock_irqsave(&_buffer_lock, flags); was_empty = (_free_buffers == NULL) ? 1 : 0; @@ -273,7 +274,7 @@ static inline struct kcopyd_job *pop(struct list_head *jobs) { struct kcopyd_job *job = NULL; - int flags; + unsigned long flags; spin_lock_irqsave(&_job_lock, flags); @@ -288,7 +289,7 @@ static inline void push(struct list_head *jobs, struct kcopyd_job *job) { - int flags; + unsigned long flags; spin_lock_irqsave(&_job_lock, flags); list_add(&job->list, jobs);