From: Amol Lad Replaced save_flags()/cli() with spin_lock alternatives [akpm@osdl.org: no longer BROKEN_ON_SMP] Signed-off-by: Amol Lad Cc: James Bottomley Cc: Alan Cox Signed-off-by: Andrew Morton --- drivers/scsi/mca_53c9x.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff -puN drivers/scsi/mca_53c9x.c~drivers-scsi-mca_53c9xc-save_flags-cli-removal drivers/scsi/mca_53c9x.c --- a/drivers/scsi/mca_53c9x.c~drivers-scsi-mca_53c9xc-save_flags-cli-removal +++ a/drivers/scsi/mca_53c9x.c @@ -341,9 +341,7 @@ static void dma_init_read(struct NCR_ESP { unsigned long flags; - - save_flags(flags); - cli(); + spin_lock_irqsave(esp->ehost->host_lock, flags); mca_disable_dma(esp->dma); mca_set_dma_mode(esp->dma, MCA_DMA_MODE_XFER | MCA_DMA_MODE_16 | @@ -352,16 +350,14 @@ static void dma_init_read(struct NCR_ESP mca_set_dma_count(esp->dma, length / 2); /* !!! */ mca_enable_dma(esp->dma); - restore_flags(flags); + spin_unlock_irqrestore(esp->ehost->host_lock, flags); } static void dma_init_write(struct NCR_ESP *esp, __u32 addr, int length) { unsigned long flags; - - save_flags(flags); - cli(); + spin_lock_irqsave(esp->ehost->host_lock, flags); mca_disable_dma(esp->dma); mca_set_dma_mode(esp->dma, MCA_DMA_MODE_XFER | MCA_DMA_MODE_WRITE | @@ -370,7 +366,7 @@ static void dma_init_write(struct NCR_ES mca_set_dma_count(esp->dma, length / 2); /* !!! */ mca_enable_dma(esp->dma); - restore_flags(flags); + spin_unlock_irqrestore(esp->ehost->host_lock, flags); } static void dma_ints_off(struct NCR_ESP *esp) _