diff options
author | Dave Kleikamp <shaggy@austin.ibm.com> | 2005-06-20 08:44:00 -0500 |
---|---|---|
committer | Dave Kleikamp <shaggy@austin.ibm.com> | 2005-06-20 08:44:00 -0500 |
commit | d039ba24f135147f60a13bcaa768189a5b773b6e (patch) | |
tree | 444b7596ab8312b5954d15c3135052a7c09c6fbe /drivers/scsi/ibmmca.c | |
parent | 72e3148a6e987974e3e949c5668e5ca812d7c818 (diff) | |
parent | 8b22c249e7de453961e4d253b19fc2a0bdd65d53 (diff) |
Merge with /home/shaggy/git/linus-clean/
Diffstat (limited to 'drivers/scsi/ibmmca.c')
-rw-r--r-- | drivers/scsi/ibmmca.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/drivers/scsi/ibmmca.c b/drivers/scsi/ibmmca.c index a3fdead9bce..b5dc3535557 100644 --- a/drivers/scsi/ibmmca.c +++ b/drivers/scsi/ibmmca.c @@ -2118,7 +2118,7 @@ static int ibmmca_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)) return 0; } -static int ibmmca_abort(Scsi_Cmnd * cmd) +static int __ibmmca_abort(Scsi_Cmnd * cmd) { /* Abort does not work, as the adapter never generates an interrupt on * whatever situation is simulated, even when really pending commands @@ -2225,7 +2225,19 @@ static int ibmmca_abort(Scsi_Cmnd * cmd) } } -static int ibmmca_host_reset(Scsi_Cmnd * cmd) +static int ibmmca_abort(Scsi_Cmnd * cmd) +{ + struct Scsi_Host *shpnt = cmd->device->host; + int rc; + + spin_lock_irq(shpnt->host_lock); + rc = __ibmmca_abort(cmd); + spin_unlock_irq(shpnt->host_lock); + + return rc; +} + +static int __ibmmca_host_reset(Scsi_Cmnd * cmd) { struct Scsi_Host *shpnt; Scsi_Cmnd *cmd_aid; @@ -2312,6 +2324,18 @@ static int ibmmca_host_reset(Scsi_Cmnd * cmd) return SUCCESS; } +static int ibmmca_host_reset(Scsi_Cmnd * cmd) +{ + struct Scsi_Host *shpnt = cmd->device->host; + int rc; + + spin_lock_irq(shpnt->host_lock); + rc = __ibmmca_host_reset(cmd); + spin_unlock_irq(shpnt->host_lock); + + return rc; +} + static int ibmmca_biosparam(struct scsi_device *sdev, struct block_device *bdev, sector_t capacity, int *info) { int size = capacity; |