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.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 9e9d0c40187e..52b72d7794f5 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -8448,7 +8448,6 @@ aic7xxx_alloc(Scsi_Host_Template *sht, struct aic7xxx_host *temp)
8448 } 8448 }
8449 p->host_no = host->host_no; 8449 p->host_no = host->host_no;
8450 } 8450 }
8451 scsi_set_device(host, &p->pdev->dev);
8452 return (p); 8451 return (p);
8453} 8452}
8454 8453
@@ -10358,7 +10357,7 @@ aic7xxx_queue(Scsi_Cmnd *cmd, void (*fn)(Scsi_Cmnd *))
10358 * Returns an enumerated type that indicates the status of the operation. 10357 * Returns an enumerated type that indicates the status of the operation.
10359 *-F*************************************************************************/ 10358 *-F*************************************************************************/
10360static int 10359static int
10361aic7xxx_bus_device_reset(Scsi_Cmnd *cmd) 10360__aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10362{ 10361{
10363 struct aic7xxx_host *p; 10362 struct aic7xxx_host *p;
10364 struct aic7xxx_scb *scb; 10363 struct aic7xxx_scb *scb;
@@ -10551,6 +10550,18 @@ aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10551 return SUCCESS; 10550 return SUCCESS;
10552} 10551}
10553 10552
10553static int
10554aic7xxx_bus_device_reset(Scsi_Cmnd *cmd)
10555{
10556 int rc;
10557
10558 spin_lock_irq(cmd->device->host->host_lock);
10559 rc = __aic7xxx_bus_device_reset(cmd);
10560 spin_unlock_irq(cmd->device->host->host_lock);
10561
10562 return rc;
10563}
10564
10554 10565
10555/*+F************************************************************************* 10566/*+F*************************************************************************
10556 * Function: 10567 * Function:
@@ -10585,7 +10596,7 @@ aic7xxx_panic_abort(struct aic7xxx_host *p, Scsi_Cmnd *cmd)
10585 * Abort the current SCSI command(s). 10596 * Abort the current SCSI command(s).
10586 *-F*************************************************************************/ 10597 *-F*************************************************************************/
10587static int 10598static int
10588aic7xxx_abort(Scsi_Cmnd *cmd) 10599__aic7xxx_abort(Scsi_Cmnd *cmd)
10589{ 10600{
10590 struct aic7xxx_scb *scb = NULL; 10601 struct aic7xxx_scb *scb = NULL;
10591 struct aic7xxx_host *p; 10602 struct aic7xxx_host *p;
@@ -10802,6 +10813,19 @@ success:
10802 return SUCCESS; 10813 return SUCCESS;
10803} 10814}
10804 10815
10816static int
10817aic7xxx_abort(Scsi_Cmnd *cmd)
10818{
10819 int rc;
10820
10821 spin_lock_irq(cmd->device->host->host_lock);
10822 rc = __aic7xxx_abort(cmd);
10823 spin_unlock_irq(cmd->device->host->host_lock);
10824
10825 return rc;
10826}
10827
10828
10805/*+F************************************************************************* 10829/*+F*************************************************************************
10806 * Function: 10830 * Function:
10807 * aic7xxx_reset 10831 * aic7xxx_reset
@@ -10820,6 +10844,8 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10820 struct aic_dev_data *aic_dev; 10844 struct aic_dev_data *aic_dev;
10821 10845
10822 p = (struct aic7xxx_host *) cmd->device->host->hostdata; 10846 p = (struct aic7xxx_host *) cmd->device->host->hostdata;
10847 spin_lock_irq(p->host->host_lock);
10848
10823 aic_dev = AIC_DEV(cmd); 10849 aic_dev = AIC_DEV(cmd);
10824 if(aic7xxx_position(cmd) < p->scb_data->numscbs) 10850 if(aic7xxx_position(cmd) < p->scb_data->numscbs)
10825 { 10851 {
@@ -10859,6 +10885,7 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10859 * longer have it. 10885 * longer have it.
10860 */ 10886 */
10861 unpause_sequencer(p, FALSE); 10887 unpause_sequencer(p, FALSE);
10888 spin_unlock_irq(p->host->host_lock);
10862 return SUCCESS; 10889 return SUCCESS;
10863 } 10890 }
10864 10891
@@ -10882,7 +10909,6 @@ aic7xxx_reset(Scsi_Cmnd *cmd)
10882 unpause_sequencer(p, FALSE); 10909 unpause_sequencer(p, FALSE);
10883 spin_unlock_irq(p->host->host_lock); 10910 spin_unlock_irq(p->host->host_lock);
10884 ssleep(2); 10911 ssleep(2);
10885 spin_lock_irq(p->host->host_lock);
10886 return SUCCESS; 10912 return SUCCESS;
10887} 10913}
10888 10914