The trace shows that it's __wait_on_page() that does the jumping,
and it certainly shouldn't jump to xetup_x86_irq.. The only jump it
does (apart from a schedule) is to start up the disk IO with
"run_task_queue(&disk_tq)". It looks like some disk driver isn't
setting up the task queues correctly or similar. Can you tell me
(remind me - I'm sure I've heard it before) what block device
drivers you use? (loop/scsi/ide/idecd etc..)
ide (RZ1000)
scsi (53c810, with synch, fast, disconnect enabled) -- disk and tape
sonycd
Just as a side note, be suspect to SCSI driver bugs/problems when you
see this behavior. Recently I completely rewrote the Sparc SCSI
driver, I saw very similar behavior. Wait queue's were being
corrupted, weird ptrs being dereferenced in unlock_buffer() etc. and
it turned out to be DMA overrun/underrun's happening in the SCSI
driver.
Later,
David S. Miller
davem@caip.rutgers.edu