aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx_old.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aic7xxx_old.c')
-rw-r--r--drivers/scsi/aic7xxx_old.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 9e9d0c40187e..fac091e7093c 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -10358,7 +10358,7 @@ aic7xxx_queue(Scsi_Cmnd *cmd, void (*fn)(Scsi_Cmnd *))
10358 * Returns an enumerated type that indicates the status of the operation. 10358 * Returns an enumerated type that indicates the status of the operation.
10359 *-F*************************************************************************/ 10359 *-F*************************************************************************/
10360static int 10360static int
10361aic7xxx_bus_device_reset(Scsi_Cmnd *cmd) 10361__aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10362{ 10362{
10363 struct aic7xxx_host *p; 10363 struct aic7xxx_host *p;
10364 struct aic7xxx_scb *scb; 10364 struct aic7xxx_scb *scb;
@@ -10551,6 +10551,18 @@ aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10551 return SUCCESS; 10551 return SUCCESS;
10552} 10552}
10553 10553
10554static int
10555aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10556{
10557 int rc;
10558
10559 spin_lock_irq(cmd->device->host->host_lock);
10560 rc = __aic7xxx_bus_device_reset(cmd);
10561 spin_unlock_irq(cmd->device->host->host_lock);
10562
10563 return rc;
10564}
10565
10554 10566
10555/*+F************************************************************************* 10567/*+F*************************************************************************
10556 * Function: 10568 * Function:
@@ -10585,7 +10597,7 @@ aic7xxx_panic_abort(struct aic7xxx_host *p, Scsi_Cmnd *cmd)
10585 * Abort the current SCSI command(s). 10597 * Abort the current SCSI command(s).
10586 *-F*************************************************************************/ 10598 *-F*************************************************************************/
10587static int 10599static int
10588aic7xxx_abort(Scsi_Cmnd *cmd) 10600__aic7xxx_abort(Scsi_Cmnd *cmd)
10589{ 10601{
10590 struct aic7xxx_scb *scb = NULL; 10602 struct aic7xxx_scb *scb = NULL;
10591 struct aic7xxx_host *p; 10603 struct aic7xxx_host *p;
@@ -10802,6 +10814,19 @@ success:
10802 return SUCCESS; 10814 return SUCCESS;
10803} 10815}
10804 10816
10817static int
10818aic7xxx_abort(Scsi_Cmnd *cmd)
10819{
10820 int rc;
10821
10822 spin_lock_irq(cmd->device->host->host_lock);
10823 rc = __aic7xxx_abort(cmd);
10824 spin_unlock_irq(cmd->device->host->host_lock);
10825
10826 return rc;
10827}
10828
10829
10805/*+F************************************************************************* 10830/*+F*************************************************************************
10806 * Function: 10831 * Function:
10807 * aic7xxx_reset 10832 * aic7xxx_reset
@@ -10820,6 +10845,8 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10820 struct aic_dev_data *aic_dev; 10845 struct aic_dev_data *aic_dev;
10821 10846
10822 p = (struct aic7xxx_host *) cmd->device->host->hostdata; 10847 p = (struct aic7xxx_host *) cmd->device->host->hostdata;
10848 spin_lock_irq(p->host->host_lock);
10849
10823 aic_dev = AIC_DEV(cmd); 10850 aic_dev = AIC_DEV(cmd);
10824 if(aic7xxx_position(cmd) < p->scb_data->numscbs) 10851 if(aic7xxx_position(cmd) < p->scb_data->numscbs)
10825 { 10852 {
@@ -10859,6 +10886,7 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10859 * longer have it. 10886 * longer have it.
10860 */ 10887 */
10861 unpause_sequencer(p, FALSE); 10888 unpause_sequencer(p, FALSE);
10889 spin_unlock_irq(p->host->host_lock);
10862 return SUCCESS; 10890 return SUCCESS;
10863 } 10891 }
10864 10892
@@ -10882,7 +10910,6 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10882 unpause_sequencer(p, FALSE); 10910 unpause_sequencer(p, FALSE);
10883 spin_unlock_irq(p->host->host_lock); 10911 spin_unlock_irq(p->host->host_lock);
10884 ssleep(2); 10912 ssleep(2);
10885 spin_lock_irq(p->host->host_lock);
10886 return SUCCESS; 10913 return SUCCESS;
10887} 10914}
10888 10915