diff options
Diffstat (limited to 'drivers/scsi/dc395x.c')
| -rw-r--r-- | drivers/scsi/dc395x.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c index 24c7cefb0b78..9b8796c9e634 100644 --- a/drivers/scsi/dc395x.c +++ b/drivers/scsi/dc395x.c @@ -960,8 +960,9 @@ static void build_srb(struct scsi_cmnd *cmd, struct DeviceCtlBlk *dcb,   *        and is expected to be held on return.   *   **/ -static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) +static int dc395x_queue_command_lck(struct scsi_cmnd *cmd)  { +	void (*done)(struct scsi_cmnd *) = scsi_done;  	struct DeviceCtlBlk *dcb;  	struct ScsiReqBlk *srb;  	struct AdapterCtlBlk *acb = @@ -995,8 +996,6 @@ static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct s  		goto complete;  	} -	/* set callback and clear result in the command */ -	cmd->scsi_done = done;  	set_host_byte(cmd, DID_OK);  	set_status_byte(cmd, SAM_STAT_GOOD); @@ -3336,7 +3335,7 @@ static void srb_done(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,  		dprintkl(KERN_ERR, "srb_done: ERROR! Completed cmd with tmp_srb\n");  	} -	cmd->scsi_done(cmd); +	scsi_done(cmd);  	waiting_process_next(acb);  } @@ -3367,7 +3366,7 @@ static void doing_srb_done(struct AdapterCtlBlk *acb, u8 did_flag,  			if (force) {  				/* For new EH, we normally don't need to give commands back,  				 * as they all complete or all time out */ -				p->scsi_done(p); +				scsi_done(p);  			}  		}  		if (!list_empty(&dcb->srb_going_list)) @@ -3394,7 +3393,7 @@ static void doing_srb_done(struct AdapterCtlBlk *acb, u8 did_flag,  			if (force) {  				/* For new EH, we normally don't need to give commands back,  				 * as they all complete or all time out */ -				cmd->scsi_done(cmd); +				scsi_done(cmd);  			}  		}  		if (!list_empty(&dcb->srb_waiting_list)) @@ -4618,6 +4617,7 @@ static int dc395x_init_one(struct pci_dev *dev, const struct pci_device_id *id)  	/* initialise the adapter and everything we need */   	if (adapter_init(acb, io_port_base, io_port_len, irq)) {  		dprintkl(KERN_INFO, "adapter init failed\n"); +		acb = NULL;  		goto fail;  	} |