[PATCH] Fix vesafb/mtrr scaling problem.
[powerpc.git] / drivers / scsi / fd_mcs.c
index 770930e..fa652f8 100644 (file)
@@ -1241,18 +1241,9 @@ static int fd_mcs_abort(Scsi_Cmnd * SCpnt)
        return SUCCESS;
 }
 
-static int fd_mcs_host_reset(Scsi_Cmnd * SCpnt)
-{
-       return FAILED;
-}
-
-static int fd_mcs_device_reset(Scsi_Cmnd * SCpnt) 
-{
-       return FAILED;
-}
-
 static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
        struct Scsi_Host *shpnt = SCpnt->device->host;
+       unsigned long flags;
 
 #if DEBUG_RESET
        static int called_once = 0;
@@ -1269,6 +1260,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
        called_once = 1;
 #endif
 
+       spin_lock_irqsave(shpnt->host_lock, flags);
+
        outb(1, SCSI_Cntl_port);
        do_pause(2);
        outb(0, SCSI_Cntl_port);
@@ -1276,6 +1269,8 @@ static int fd_mcs_bus_reset(Scsi_Cmnd * SCpnt) {
        outb(0, SCSI_Mode_Cntl_port);
        outb(PARITY_MASK, TMC_Cntl_port);
 
+       spin_unlock_irqrestore(shpnt->host_lock, flags);
+
        /* Unless this is the very first call (i.e., SCPnt == NULL), everything
           is probably hosed at this point.  We will, however, try to keep
           things going by informing the high-level code that we need help. */
@@ -1357,8 +1352,6 @@ static Scsi_Host_Template driver_template = {
        .queuecommand                   = fd_mcs_queue, 
        .eh_abort_handler               = fd_mcs_abort,
        .eh_bus_reset_handler           = fd_mcs_bus_reset,
-       .eh_host_reset_handler          = fd_mcs_host_reset,
-       .eh_device_reset_handler        = fd_mcs_device_reset,
        .bios_param                     = fd_mcs_biosparam,
        .can_queue                      = 1,
        .this_id                        = 7,