diff options
Diffstat (limited to 'drivers/scsi/aic7xxx_old.c')
-rw-r--r-- | drivers/scsi/aic7xxx_old.c | 34 |
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*************************************************************************/ |
10360 | static int | 10359 | static int |
10361 | aic7xxx_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 | ||
10553 | static int | ||
10554 | aic7xxx_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*************************************************************************/ |
10587 | static int | 10598 | static int |
10588 | aic7xxx_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 | ||
10816 | static int | ||
10817 | aic7xxx_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 | ||