Could you try putting the "synchronize_irq()" call into the
"disable_irq()" function instead (arch/i386/kernel/irq.c), which should
fix at least one potential bug in the SCSI mid-layer code (not a bug in
the SCSI code itself, but a bug in disable_irq()).
That particular fix is in my pre-patch-2.1.37, but I have to say that
while my current pre-patch is very interesting indeed, it may be more
prudent to apply just the disable_irq() part.
(But _real_ men get the pre-patch, just to see what magical speedups
have happened: SMP system call latency is noticeably better).
Linus