mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
scsi: core: Remove the 'done' argument from SCSI queuecommand_lck functions
The DEF_SCSI_QCMD() macro passes the addresses of the SCSI host lock and also that of the scsi_done function to the queuecommand_lck() function implementations. Remove the 'scsi_done' argument since its address is now a constant and instead call 'scsi_done' directly from inside the queuecommand_lck() functions. Link: https://lore.kernel.org/r/20211007204618.2196847-14-bvanassche@acm.org Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
0feb3429d7
commit
af049dfd0b
@@ -1744,8 +1744,9 @@ out:
|
||||
} /* End twa_scsi_eh_reset() */
|
||||
|
||||
/* This is the main scsi queue function to handle scsi opcodes */
|
||||
static int twa_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int twa_scsi_queue_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
int request_id, retval;
|
||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata;
|
||||
|
||||
|
||||
@@ -1450,8 +1450,9 @@ out:
|
||||
} /* End twl_scsi_eh_reset() */
|
||||
|
||||
/* This is the main scsi queue function to handle scsi opcodes */
|
||||
static int twl_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int twl_scsi_queue_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
int request_id, retval;
|
||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata;
|
||||
|
||||
|
||||
@@ -1918,8 +1918,9 @@ static int tw_scsiop_test_unit_ready_complete(TW_Device_Extension *tw_dev, int r
|
||||
} /* End tw_scsiop_test_unit_ready_complete() */
|
||||
|
||||
/* This is the main scsi queue function to handle scsi opcodes */
|
||||
static int tw_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int tw_scsi_queue_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
unsigned char *command = SCpnt->cmnd;
|
||||
int request_id = 0;
|
||||
int retval = 1;
|
||||
|
||||
@@ -1751,8 +1751,7 @@ NCR_700_intr(int irq, void *dev_id)
|
||||
return IRQ_RETVAL(handled);
|
||||
}
|
||||
|
||||
static int
|
||||
NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *))
|
||||
static int NCR_700_queuecommand_lck(struct scsi_cmnd *SCp)
|
||||
{
|
||||
struct NCR_700_Host_Parameters *hostdata =
|
||||
(struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0];
|
||||
|
||||
@@ -2866,9 +2866,9 @@ static int blogic_hostreset(struct scsi_cmnd *SCpnt)
|
||||
Outgoing Mailbox for execution by the associated Host Adapter.
|
||||
*/
|
||||
|
||||
static int blogic_qcmd_lck(struct scsi_cmnd *command,
|
||||
void (*comp_cb) (struct scsi_cmnd *))
|
||||
static int blogic_qcmd_lck(struct scsi_cmnd *command)
|
||||
{
|
||||
void (*comp_cb)(struct scsi_cmnd *) = scsi_done;
|
||||
struct blogic_adapter *adapter =
|
||||
(struct blogic_adapter *) command->device->host->hostdata;
|
||||
struct blogic_tgt_flags *tgt_flags =
|
||||
|
||||
@@ -911,7 +911,7 @@ static int inia100_build_scb(struct orc_host * host, struct orc_scb * scb, struc
|
||||
* queue the command down to the controller
|
||||
*/
|
||||
|
||||
static int inia100_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
static int inia100_queue_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct orc_scb *scb;
|
||||
struct orc_host *host; /* Point to Host adapter control block */
|
||||
|
||||
@@ -8453,8 +8453,7 @@ static int asc_execute_scsi_cmnd(struct scsi_cmnd *scp)
|
||||
* This function always returns 0. Command return status is saved
|
||||
* in the 'scp' result field.
|
||||
*/
|
||||
static int
|
||||
advansys_queuecommand_lck(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
||||
static int advansys_queuecommand_lck(struct scsi_cmnd *scp)
|
||||
{
|
||||
struct Scsi_Host *shost = scp->device->host;
|
||||
int asc_res, result = 0;
|
||||
|
||||
@@ -975,10 +975,8 @@ static int aha152x_internal_queue(struct scsi_cmnd *SCpnt,
|
||||
* queue a command
|
||||
*
|
||||
*/
|
||||
static int aha152x_queue_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
static int aha152x_queue_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
WARN_ON_ONCE(done != scsi_done);
|
||||
return aha152x_internal_queue(SCpnt, NULL, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -315,9 +315,9 @@ static irqreturn_t aha1740_intr_handle(int irq, void *dev_id)
|
||||
return IRQ_RETVAL(handled);
|
||||
}
|
||||
|
||||
static int aha1740_queuecommand_lck(struct scsi_cmnd * SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
static int aha1740_queuecommand_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
unchar direction;
|
||||
unchar *cmd = (unchar *) SCpnt->cmnd;
|
||||
unchar target = scmd_id(SCpnt);
|
||||
|
||||
@@ -572,8 +572,7 @@ ahd_linux_info(struct Scsi_Host *host)
|
||||
/*
|
||||
* Queue an SCB to the controller.
|
||||
*/
|
||||
static int
|
||||
ahd_linux_queue_lck(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
static int ahd_linux_queue_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct ahd_softc *ahd;
|
||||
struct ahd_linux_device *dev = scsi_transport_device_data(cmd->device);
|
||||
|
||||
@@ -518,8 +518,7 @@ ahc_linux_info(struct Scsi_Host *host)
|
||||
/*
|
||||
* Queue an SCB to the controller.
|
||||
*/
|
||||
static int
|
||||
ahc_linux_queue_lck(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
static int ahc_linux_queue_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct ahc_softc *ahc;
|
||||
struct ahc_linux_device *dev = scsi_transport_device_data(cmd->device);
|
||||
|
||||
@@ -3231,8 +3231,7 @@ static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
|
||||
}
|
||||
}
|
||||
|
||||
static int arcmsr_queue_command_lck(struct scsi_cmnd *cmd,
|
||||
void (* done)(struct scsi_cmnd *))
|
||||
static int arcmsr_queue_command_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata;
|
||||
|
||||
@@ -2397,24 +2397,16 @@ acornscsi_intr(int irq, void *dev_id)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Function : acornscsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
* Function : acornscsi_queuecmd(struct scsi_cmnd *cmd)
|
||||
* Purpose : queues a SCSI command
|
||||
* Params : cmd - SCSI command
|
||||
* done - function called on completion, with pointer to command descriptor
|
||||
* Returns : 0, or < 0 on error.
|
||||
*/
|
||||
static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata;
|
||||
|
||||
if (!done) {
|
||||
/* there should be some way of rejecting errors like this without panicing... */
|
||||
panic("scsi%d: queuecommand called with NULL done function [cmd=%p]",
|
||||
host->host->host_no, SCpnt);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#if (DEBUG & DEBUG_NO_WRITE)
|
||||
if (acornscsi_cmdtype(SCpnt->cmnd[0]) == CMD_WRITE && (NO_WRITE & (1 << SCpnt->device->id))) {
|
||||
printk(KERN_CRIT "scsi%d.%c: WRITE attempted with NO_WRITE flag set\n",
|
||||
|
||||
@@ -2233,10 +2233,9 @@ static int fas216_queue_command_internal(struct scsi_cmnd *SCpnt,
|
||||
return result;
|
||||
}
|
||||
|
||||
static int fas216_queue_command_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
static int fas216_queue_command_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
return fas216_queue_command_internal(SCpnt, done);
|
||||
return fas216_queue_command_internal(SCpnt, scsi_done);
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(fas216_queue_command)
|
||||
@@ -2264,8 +2263,7 @@ static void fas216_internal_done(struct scsi_cmnd *SCpnt)
|
||||
* Returns: scsi result code.
|
||||
* Notes: io_request_lock is held, interrupts are disabled.
|
||||
*/
|
||||
static int fas216_noqueue_command_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
static int fas216_noqueue_command_lck(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
||||
|
||||
@@ -2306,7 +2304,7 @@ static int fas216_noqueue_command_lck(struct scsi_cmnd *SCpnt,
|
||||
|
||||
spin_lock_irq(info->host->host_lock);
|
||||
|
||||
done(SCpnt);
|
||||
scsi_done(SCpnt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -618,9 +618,9 @@ static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
|
||||
*
|
||||
* Queue a command to the ATP queue. Called with the host lock held.
|
||||
*/
|
||||
static int atp870u_queuecommand_lck(struct scsi_cmnd *req_p,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
static int atp870u_queuecommand_lck(struct scsi_cmnd *req_p)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
unsigned char c;
|
||||
unsigned int m;
|
||||
struct atp_unit *dev;
|
||||
|
||||
@@ -1199,9 +1199,9 @@ bfad_im_itnim_work_handler(struct work_struct *work)
|
||||
/*
|
||||
* Scsi_Host template entry, queue a SCSI command to the BFAD.
|
||||
*/
|
||||
static int
|
||||
bfad_im_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
||||
static int bfad_im_queuecommand_lck(struct scsi_cmnd *cmnd)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
struct bfad_im_port_s *im_port =
|
||||
(struct bfad_im_port_s *) cmnd->device->host->hostdata[0];
|
||||
struct bfad_s *bfad = im_port->bfad;
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -416,7 +416,7 @@ static int adpt_slave_configure(struct scsi_device * device)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adpt_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
static int adpt_queue_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
adpt_hba* pHba = NULL;
|
||||
struct adpt_device* pDev = NULL; /* dpt per device information */
|
||||
|
||||
@@ -952,7 +952,7 @@ static void esp_event_queue_full(struct esp *esp, struct esp_cmd_entry *ent)
|
||||
scsi_track_queue_full(dev, lp->num_tagged - 1);
|
||||
}
|
||||
|
||||
static int esp_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int esp_queuecommand_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct scsi_device *dev = cmd->device;
|
||||
struct esp *esp = shost_priv(dev->host);
|
||||
|
||||
@@ -420,8 +420,9 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
|
||||
* Routine to send a scsi cdb
|
||||
* Called with host_lock held and interrupts disabled.
|
||||
*/
|
||||
static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
||||
static int fnic_queuecommand_lck(struct scsi_cmnd *sc)
|
||||
{
|
||||
void (*done)(struct scsi_cmnd *) = scsi_done;
|
||||
const int tag = scsi_cmd_to_rq(sc)->tag;
|
||||
struct fc_lport *lp = shost_priv(sc->device->host);
|
||||
struct fc_rport *rport;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user