mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/ipv4/fib_frontend.c
This commit is contained in:
commit
17f7f4d9fc
1401 changed files with 22675 additions and 12035 deletions
|
|
@ -1765,7 +1765,7 @@ out:
|
|||
} /* End twa_scsi_eh_reset() */
|
||||
|
||||
/* This is the main scsi queue function to handle scsi opcodes */
|
||||
static int twa_scsi_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int twa_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
int request_id, retval;
|
||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata;
|
||||
|
|
@ -1812,6 +1812,8 @@ out:
|
|||
return retval;
|
||||
} /* End twa_scsi_queue() */
|
||||
|
||||
static DEF_SCSI_QCMD(twa_scsi_queue)
|
||||
|
||||
/* This function hands scsi cdb's to the firmware */
|
||||
static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int request_id, char *cdb, int use_sg, TW_SG_Entry *sglistarg)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1501,7 +1501,7 @@ out:
|
|||
} /* End twl_scsi_eh_reset() */
|
||||
|
||||
/* This is the main scsi queue function to handle scsi opcodes */
|
||||
static int twl_scsi_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int twl_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
int request_id, retval;
|
||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata;
|
||||
|
|
@ -1536,6 +1536,8 @@ out:
|
|||
return retval;
|
||||
} /* End twl_scsi_queue() */
|
||||
|
||||
static DEF_SCSI_QCMD(twl_scsi_queue)
|
||||
|
||||
/* This function tells the controller to shut down */
|
||||
static void __twl_shutdown(TW_Device_Extension *tw_dev)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1947,7 +1947,7 @@ 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(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int tw_scsi_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
unsigned char *command = SCpnt->cmnd;
|
||||
int request_id = 0;
|
||||
|
|
@ -2023,6 +2023,8 @@ static int tw_scsi_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd
|
|||
return retval;
|
||||
} /* End tw_scsi_queue() */
|
||||
|
||||
static DEF_SCSI_QCMD(tw_scsi_queue)
|
||||
|
||||
/* This function is the interrupt service routine */
|
||||
static irqreturn_t tw_interrupt(int irq, void *dev_instance)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ MODULE_LICENSE("GPL");
|
|||
#include "53c700_d.h"
|
||||
|
||||
|
||||
STATIC int NCR_700_queuecommand(struct scsi_cmnd *, void (*done)(struct scsi_cmnd *));
|
||||
STATIC int NCR_700_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *);
|
||||
STATIC int NCR_700_abort(struct scsi_cmnd * SCpnt);
|
||||
STATIC int NCR_700_bus_reset(struct scsi_cmnd * SCpnt);
|
||||
STATIC int NCR_700_host_reset(struct scsi_cmnd * SCpnt);
|
||||
|
|
@ -1749,8 +1749,8 @@ NCR_700_intr(int irq, void *dev_id)
|
|||
return IRQ_RETVAL(handled);
|
||||
}
|
||||
|
||||
STATIC int
|
||||
NCR_700_queuecommand(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *))
|
||||
static int
|
||||
NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct NCR_700_Host_Parameters *hostdata =
|
||||
(struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0];
|
||||
|
|
@ -1904,6 +1904,8 @@ NCR_700_queuecommand(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
STATIC DEF_SCSI_QCMD(NCR_700_queuecommand)
|
||||
|
||||
STATIC int
|
||||
NCR_700_abort(struct scsi_cmnd * SCp)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2807,7 +2807,7 @@ static int BusLogic_host_reset(struct scsi_cmnd * SCpnt)
|
|||
Outgoing Mailbox for execution by the associated Host Adapter.
|
||||
*/
|
||||
|
||||
static int BusLogic_QueueCommand(struct scsi_cmnd *Command, void (*CompletionRoutine) (struct scsi_cmnd *))
|
||||
static int BusLogic_QueueCommand_lck(struct scsi_cmnd *Command, void (*CompletionRoutine) (struct scsi_cmnd *))
|
||||
{
|
||||
struct BusLogic_HostAdapter *HostAdapter = (struct BusLogic_HostAdapter *) Command->device->host->hostdata;
|
||||
struct BusLogic_TargetFlags *TargetFlags = &HostAdapter->TargetFlags[Command->device->id];
|
||||
|
|
@ -2994,6 +2994,7 @@ static int BusLogic_QueueCommand(struct scsi_cmnd *Command, void (*CompletionRou
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(BusLogic_QueueCommand)
|
||||
|
||||
#if 0
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1319,7 +1319,7 @@ static inline void BusLogic_IncrementSizeBucket(BusLogic_CommandSizeBuckets_T Co
|
|||
*/
|
||||
|
||||
static const char *BusLogic_DriverInfo(struct Scsi_Host *);
|
||||
static int BusLogic_QueueCommand(struct scsi_cmnd *, void (*CompletionRoutine) (struct scsi_cmnd *));
|
||||
static int BusLogic_QueueCommand(struct Scsi_Host *h, struct scsi_cmnd *);
|
||||
static int BusLogic_BIOSDiskParameters(struct scsi_device *, struct block_device *, sector_t, int *);
|
||||
static int BusLogic_ProcDirectoryInfo(struct Scsi_Host *, char *, char **, off_t, int, int);
|
||||
static int BusLogic_SlaveConfigure(struct scsi_device *);
|
||||
|
|
|
|||
|
|
@ -952,7 +952,7 @@ static void NCR5380_exit(struct Scsi_Host *instance)
|
|||
* Locks: host lock taken by caller
|
||||
*/
|
||||
|
||||
static int NCR5380_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
static int NCR5380_queue_command_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
struct Scsi_Host *instance = cmd->device->host;
|
||||
struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
|
||||
|
|
@ -1021,6 +1021,7 @@ static int NCR5380_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(NCR5380_queue_command)
|
||||
|
||||
/**
|
||||
* NCR5380_main - NCR state machines
|
||||
|
|
|
|||
|
|
@ -313,7 +313,7 @@ static void NCR5380_print(struct Scsi_Host *instance);
|
|||
#endif
|
||||
static int NCR5380_abort(Scsi_Cmnd * cmd);
|
||||
static int NCR5380_bus_reset(Scsi_Cmnd * cmd);
|
||||
static int NCR5380_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *));
|
||||
static int NCR5380_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
|
||||
char *buffer, char **start, off_t offset, int length, int inout);
|
||||
|
||||
|
|
|
|||
|
|
@ -693,7 +693,7 @@ static void wait_intr(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
static int NCR53c406a_queue_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
@ -726,6 +726,8 @@ static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(NCR53c406a_queue)
|
||||
|
||||
static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
|
||||
{
|
||||
DEB(printk("NCR53c406a_reset called\n"));
|
||||
|
|
|
|||
|
|
@ -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(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
static int inia100_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct orc_scb *scb;
|
||||
struct orc_host *host; /* Point to Host adapter control block */
|
||||
|
|
@ -930,6 +930,8 @@ static int inia100_queue(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(inia100_queue)
|
||||
|
||||
/*****************************************************************************
|
||||
Function name : inia100_abort
|
||||
Description : Abort a queued command.
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ static struct aac_driver_ident aac_drivers[] = {
|
|||
* TODO: unify with aac_scsi_cmd().
|
||||
*/
|
||||
|
||||
static int aac_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int aac_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
struct aac_dev *dev = (struct aac_dev *)host->hostdata;
|
||||
|
|
@ -267,6 +267,8 @@ static int aac_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd
|
|||
return (aac_scsi_cmd(cmd) ? FAILED : 0);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(aac_queuecommand)
|
||||
|
||||
/**
|
||||
* aac_info - Returns the host adapter name
|
||||
* @shost: Scsi host to report on
|
||||
|
|
|
|||
|
|
@ -9500,7 +9500,7 @@ static int asc_execute_scsi_cmnd(struct scsi_cmnd *scp)
|
|||
* in the 'scp' result field.
|
||||
*/
|
||||
static int
|
||||
advansys_queuecommand(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
||||
advansys_queuecommand_lck(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *shost = scp->device->host;
|
||||
int asc_res, result = 0;
|
||||
|
|
@ -9525,6 +9525,8 @@ advansys_queuecommand(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
|||
return result;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(advansys_queuecommand)
|
||||
|
||||
static ushort __devinit AscGetEisaChipCfg(PortAddr iop_base)
|
||||
{
|
||||
PortAddr eisa_cfg_iop = (PortAddr) ASC_GET_EISA_SLOT(iop_base) |
|
||||
|
|
|
|||
|
|
@ -1056,7 +1056,7 @@ static int aha152x_internal_queue(Scsi_Cmnd *SCpnt, struct completion *complete,
|
|||
* queue a command
|
||||
*
|
||||
*/
|
||||
static int aha152x_queue(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
||||
static int aha152x_queue_lck(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
||||
{
|
||||
#if 0
|
||||
if(*SCpnt->cmnd == REQUEST_SENSE) {
|
||||
|
|
@ -1070,6 +1070,8 @@ static int aha152x_queue(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
|||
return aha152x_internal_queue(SCpnt, NULL, 0, done);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(aha152x_queue)
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ static void aha1542_intr_handle(struct Scsi_Host *shost)
|
|||
};
|
||||
}
|
||||
|
||||
static int aha1542_queuecommand(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
static int aha1542_queuecommand_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
unchar ahacmd = CMD_START_SCSI;
|
||||
unchar direction;
|
||||
|
|
@ -718,6 +718,8 @@ static int aha1542_queuecommand(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(aha1542_queuecommand)
|
||||
|
||||
/* Initialize mailboxes */
|
||||
static void setup_mailboxes(int bse, struct Scsi_Host *shpnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ struct ccb { /* Command Control Block 5.3 */
|
|||
};
|
||||
|
||||
static int aha1542_detect(struct scsi_host_template *);
|
||||
static int aha1542_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
|
||||
static int aha1542_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int aha1542_bus_reset(Scsi_Cmnd * SCpnt);
|
||||
static int aha1542_dev_reset(Scsi_Cmnd * SCpnt);
|
||||
static int aha1542_host_reset(Scsi_Cmnd * SCpnt);
|
||||
|
|
|
|||
|
|
@ -331,7 +331,7 @@ static irqreturn_t aha1740_intr_handle(int irq, void *dev_id)
|
|||
return IRQ_RETVAL(handled);
|
||||
}
|
||||
|
||||
static int aha1740_queuecommand(Scsi_Cmnd * SCpnt, void (*done)(Scsi_Cmnd *))
|
||||
static int aha1740_queuecommand_lck(Scsi_Cmnd * SCpnt, void (*done)(Scsi_Cmnd *))
|
||||
{
|
||||
unchar direction;
|
||||
unchar *cmd = (unchar *) SCpnt->cmnd;
|
||||
|
|
@ -503,6 +503,8 @@ static int aha1740_queuecommand(Scsi_Cmnd * SCpnt, void (*done)(Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(aha1740_queuecommand)
|
||||
|
||||
/* Query the board for its irq_level and irq_type. Nothing else matters
|
||||
in enhanced mode on an EISA bus. */
|
||||
|
||||
|
|
|
|||
|
|
@ -573,7 +573,7 @@ ahd_linux_info(struct Scsi_Host *host)
|
|||
* Queue an SCB to the controller.
|
||||
*/
|
||||
static int
|
||||
ahd_linux_queue(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
ahd_linux_queue_lck(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct ahd_softc *ahd;
|
||||
struct ahd_linux_device *dev = scsi_transport_device_data(cmd->device);
|
||||
|
|
@ -588,6 +588,8 @@ ahd_linux_queue(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
|||
return rtn;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ahd_linux_queue)
|
||||
|
||||
static struct scsi_target **
|
||||
ahd_linux_target_in_softc(struct scsi_target *starget)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -528,7 +528,7 @@ ahc_linux_info(struct Scsi_Host *host)
|
|||
* Queue an SCB to the controller.
|
||||
*/
|
||||
static int
|
||||
ahc_linux_queue(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
ahc_linux_queue_lck(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct ahc_softc *ahc;
|
||||
struct ahc_linux_device *dev = scsi_transport_device_data(cmd->device);
|
||||
|
|
@ -548,6 +548,8 @@ ahc_linux_queue(struct scsi_cmnd * cmd, void (*scsi_done) (struct scsi_cmnd *))
|
|||
return rtn;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ahc_linux_queue)
|
||||
|
||||
static inline struct scsi_target **
|
||||
ahc_linux_target_in_softc(struct scsi_target *starget)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10234,7 +10234,7 @@ static void aic7xxx_buildscb(struct aic7xxx_host *p, struct scsi_cmnd *cmd,
|
|||
* Description:
|
||||
* Queue a SCB to the controller.
|
||||
*-F*************************************************************************/
|
||||
static int aic7xxx_queue(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
||||
static int aic7xxx_queue_lck(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
||||
{
|
||||
struct aic7xxx_host *p;
|
||||
struct aic7xxx_scb *scb;
|
||||
|
|
@ -10292,6 +10292,8 @@ static int aic7xxx_queue(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
|||
return (0);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(aic7xxx_queue)
|
||||
|
||||
/*+F*************************************************************************
|
||||
* Function:
|
||||
* aic7xxx_bus_device_reset
|
||||
|
|
|
|||
|
|
@ -85,8 +85,7 @@ static int arcmsr_abort(struct scsi_cmnd *);
|
|||
static int arcmsr_bus_reset(struct scsi_cmnd *);
|
||||
static int arcmsr_bios_param(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int *info);
|
||||
static int arcmsr_queue_command(struct scsi_cmnd *cmd,
|
||||
void (*done) (struct scsi_cmnd *));
|
||||
static int arcmsr_queue_command(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static int arcmsr_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id);
|
||||
static void arcmsr_remove(struct pci_dev *pdev);
|
||||
|
|
@ -2081,7 +2080,7 @@ static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
|
|||
}
|
||||
}
|
||||
|
||||
static int arcmsr_queue_command(struct scsi_cmnd *cmd,
|
||||
static int arcmsr_queue_command_lck(struct scsi_cmnd *cmd,
|
||||
void (* done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
|
|
@ -2124,6 +2123,8 @@ static int arcmsr_queue_command(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(arcmsr_queue_command)
|
||||
|
||||
static bool arcmsr_get_hba_config(struct AdapterControlBlock *acb)
|
||||
{
|
||||
struct MessageUnit_A __iomem *reg = acb->pmuA;
|
||||
|
|
|
|||
|
|
@ -2511,7 +2511,7 @@ acornscsi_intr(int irq, void *dev_id)
|
|||
* done - function called on completion, with pointer to command descriptor
|
||||
* Returns : 0, or < 0 on error.
|
||||
*/
|
||||
int acornscsi_queuecmd(struct scsi_cmnd *SCpnt,
|
||||
static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata;
|
||||
|
|
@ -2561,6 +2561,8 @@ int acornscsi_queuecmd(struct scsi_cmnd *SCpnt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(acornscsi_queuecmd)
|
||||
|
||||
/*
|
||||
* Prototype: void acornscsi_reportstatus(struct scsi_cmnd **SCpntp1, struct scsi_cmnd **SCpntp2, int result)
|
||||
* Purpose : pass a result to *SCpntp1, and check if *SCpntp1 = *SCpntp2
|
||||
|
|
|
|||
|
|
@ -2198,7 +2198,7 @@ no_command:
|
|||
* Returns: 0 on success, else error.
|
||||
* Notes: io_request_lock is held, interrupts are disabled.
|
||||
*/
|
||||
int fas216_queue_command(struct scsi_cmnd *SCpnt,
|
||||
static int fas216_queue_command_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
||||
|
|
@ -2240,6 +2240,8 @@ int fas216_queue_command(struct scsi_cmnd *SCpnt,
|
|||
return result;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(fas216_queue_command)
|
||||
|
||||
/**
|
||||
* fas216_internal_done - trigger restart of a waiting thread in fas216_noqueue_command
|
||||
* @SCpnt: Command to wake
|
||||
|
|
@ -2263,7 +2265,7 @@ static void fas216_internal_done(struct scsi_cmnd *SCpnt)
|
|||
* Returns: scsi result code.
|
||||
* Notes: io_request_lock is held, interrupts are disabled.
|
||||
*/
|
||||
int fas216_noqueue_command(struct scsi_cmnd *SCpnt,
|
||||
static int fas216_noqueue_command_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
||||
|
|
@ -2277,7 +2279,7 @@ int fas216_noqueue_command(struct scsi_cmnd *SCpnt,
|
|||
BUG_ON(info->scsi.irq != NO_IRQ);
|
||||
|
||||
info->internal_done = 0;
|
||||
fas216_queue_command(SCpnt, fas216_internal_done);
|
||||
fas216_queue_command_lck(SCpnt, fas216_internal_done);
|
||||
|
||||
/*
|
||||
* This wastes time, since we can't return until the command is
|
||||
|
|
@ -2310,6 +2312,8 @@ int fas216_noqueue_command(struct scsi_cmnd *SCpnt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(fas216_noqueue_command)
|
||||
|
||||
/*
|
||||
* Error handler timeout function. Indicate that we timed out,
|
||||
* and wake up any error handler process so it can continue.
|
||||
|
|
|
|||
|
|
@ -331,23 +331,21 @@ extern int fas216_init (struct Scsi_Host *instance);
|
|||
*/
|
||||
extern int fas216_add (struct Scsi_Host *instance, struct device *dev);
|
||||
|
||||
/* Function: int fas216_queue_command(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
/* Function: int fas216_queue_command(struct Scsi_Host *h, struct scsi_cmnd *SCpnt)
|
||||
* Purpose : queue a command for adapter to process.
|
||||
* Params : SCpnt - Command to queue
|
||||
* done - done function to call once command is complete
|
||||
* Params : h - host adapter
|
||||
* : SCpnt - Command to queue
|
||||
* Returns : 0 - success, else error
|
||||
*/
|
||||
extern int fas216_queue_command(struct scsi_cmnd *,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
extern int fas216_queue_command(struct Scsi_Host *h, struct scsi_cmnd *SCpnt);
|
||||
|
||||
/* Function: int fas216_noqueue_command(istruct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
/* Function: int fas216_noqueue_command(struct Scsi_Host *h, struct scsi_cmnd *SCpnt)
|
||||
* Purpose : queue a command for adapter to process, and process it to completion.
|
||||
* Params : SCpnt - Command to queue
|
||||
* done - done function to call once command is complete
|
||||
* Params : h - host adapter
|
||||
* : SCpnt - Command to queue
|
||||
* Returns : 0 - success, else error
|
||||
*/
|
||||
extern int fas216_noqueue_command(struct scsi_cmnd *,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
extern int fas216_noqueue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
|
||||
/* Function: irqreturn_t fas216_intr (FAS216_Info *info)
|
||||
* Purpose : handle interrupts from the interface to progress a command
|
||||
|
|
|
|||
|
|
@ -910,7 +910,7 @@ static int __init NCR5380_init(struct Scsi_Host *instance, int flags)
|
|||
*
|
||||
*/
|
||||
|
||||
static int NCR5380_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *))
|
||||
static int NCR5380_queue_command_lck(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *))
|
||||
{
|
||||
SETUP_HOSTDATA(cmd->device->host);
|
||||
Scsi_Cmnd *tmp;
|
||||
|
|
@ -1022,6 +1022,8 @@ static int NCR5380_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(NCR5380_queue_command)
|
||||
|
||||
/*
|
||||
* Function : NCR5380_main (void)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -572,23 +572,6 @@ static void falcon_get_lock(void)
|
|||
}
|
||||
|
||||
|
||||
/* This is the wrapper function for NCR5380_queue_command(). It just
|
||||
* tries to get the lock on the ST-DMA (see above) and then calls the
|
||||
* original function.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
int atari_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *))
|
||||
{
|
||||
/* falcon_get_lock();
|
||||
* ++guenther: moved to NCR5380_queue_command() to prevent
|
||||
* race condition, see there for an explanation.
|
||||
*/
|
||||
return NCR5380_queue_command(cmd, done);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int __init atari_scsi_detect(struct scsi_host_template *host)
|
||||
{
|
||||
static int called = 0;
|
||||
|
|
|
|||
|
|
@ -605,7 +605,7 @@ handled:
|
|||
*
|
||||
* Queue a command to the ATP queue. Called with the host lock held.
|
||||
*/
|
||||
static int atp870u_queuecommand(struct scsi_cmnd * req_p,
|
||||
static int atp870u_queuecommand_lck(struct scsi_cmnd *req_p,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
unsigned char c;
|
||||
|
|
@ -694,6 +694,8 @@ static int atp870u_queuecommand(struct scsi_cmnd * req_p,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(atp870u_queuecommand)
|
||||
|
||||
/**
|
||||
* send_s870 - send a command to the controller
|
||||
* @host: host
|
||||
|
|
|
|||
|
|
@ -677,7 +677,7 @@ bfa_fcs_fabric_sm_isolated(struct bfa_fcs_fabric_s *fabric,
|
|||
bfa_trc(fabric->fcs, event);
|
||||
wwn2str(pwwn_ptr, fabric->bport.port_cfg.pwwn);
|
||||
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Port is isolated due to VF_ID mismatch. "
|
||||
"PWWN: %s Port VF_ID: %04x switch port VF_ID: %04x.",
|
||||
pwwn_ptr, fabric->fcs->port_vfid,
|
||||
|
|
@ -1411,7 +1411,7 @@ bfa_fcs_fabric_set_fabric_name(struct bfa_fcs_fabric_s *fabric,
|
|||
wwn2str(pwwn_ptr, bfa_fcs_lport_get_pwwn(&fabric->bport));
|
||||
wwn2str(fwwn_ptr,
|
||||
bfa_fcs_lport_get_fabric_name(&fabric->bport));
|
||||
BFA_LOG(KERN_WARNING, bfad, log_level,
|
||||
BFA_LOG(KERN_WARNING, bfad, bfa_log_level,
|
||||
"Base port WWN = %s Fabric WWN = %s\n",
|
||||
pwwn_ptr, fwwn_ptr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ bfa_fcs_itnim_sm_hcb_online(struct bfa_fcs_itnim_s *itnim,
|
|||
bfa_fcb_itnim_online(itnim->itnim_drv);
|
||||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(itnim->rport->port));
|
||||
wwn2str(rpwwn_buf, itnim->rport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Target (WWN = %s) is online for initiator (WWN = %s)\n",
|
||||
rpwwn_buf, lpwwn_buf);
|
||||
break;
|
||||
|
|
@ -301,11 +301,11 @@ bfa_fcs_itnim_sm_online(struct bfa_fcs_itnim_s *itnim,
|
|||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(itnim->rport->port));
|
||||
wwn2str(rpwwn_buf, itnim->rport->pwwn);
|
||||
if (bfa_fcs_lport_is_online(itnim->rport->port) == BFA_TRUE)
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Target (WWN = %s) connectivity lost for "
|
||||
"initiator (WWN = %s)\n", rpwwn_buf, lpwwn_buf);
|
||||
else
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Target (WWN = %s) offlined by initiator (WWN = %s)\n",
|
||||
rpwwn_buf, lpwwn_buf);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -491,7 +491,7 @@ bfa_fcs_lport_online_actions(struct bfa_fcs_lport_s *port)
|
|||
__port_action[port->fabric->fab_type].online(port);
|
||||
|
||||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(port));
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Logical port online: WWN = %s Role = %s\n",
|
||||
lpwwn_buf, "Initiator");
|
||||
|
||||
|
|
@ -512,11 +512,11 @@ bfa_fcs_lport_offline_actions(struct bfa_fcs_lport_s *port)
|
|||
|
||||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(port));
|
||||
if (bfa_fcs_fabric_is_online(port->fabric) == BFA_TRUE)
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Logical port lost fabric connectivity: WWN = %s Role = %s\n",
|
||||
lpwwn_buf, "Initiator");
|
||||
else
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Logical port taken offline: WWN = %s Role = %s\n",
|
||||
lpwwn_buf, "Initiator");
|
||||
|
||||
|
|
@ -573,7 +573,7 @@ bfa_fcs_lport_deleted(struct bfa_fcs_lport_s *port)
|
|||
char lpwwn_buf[BFA_STRING_32];
|
||||
|
||||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(port));
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Logical port deleted: WWN = %s Role = %s\n",
|
||||
lpwwn_buf, "Initiator");
|
||||
|
||||
|
|
@ -878,7 +878,7 @@ bfa_fcs_lport_init(struct bfa_fcs_lport_s *lport,
|
|||
vport ? vport->vport_drv : NULL);
|
||||
|
||||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(lport));
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"New logical port created: WWN = %s Role = %s\n",
|
||||
lpwwn_buf, "Initiator");
|
||||
|
||||
|
|
|
|||
|
|
@ -2056,7 +2056,7 @@ bfa_fcs_rport_online_action(struct bfa_fcs_rport_s *rport)
|
|||
wwn2str(lpwwn_buf, bfa_fcs_lport_get_pwwn(port));
|
||||
wwn2str(rpwwn_buf, rport->pwwn);
|
||||
if (!BFA_FCS_PID_IS_WKA(rport->pid))
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Remote port (WWN = %s) online for logical port (WWN = %s)\n",
|
||||
rpwwn_buf, lpwwn_buf);
|
||||
}
|
||||
|
|
@ -2075,12 +2075,12 @@ bfa_fcs_rport_offline_action(struct bfa_fcs_rport_s *rport)
|
|||
wwn2str(rpwwn_buf, rport->pwwn);
|
||||
if (!BFA_FCS_PID_IS_WKA(rport->pid)) {
|
||||
if (bfa_fcs_lport_is_online(rport->port) == BFA_TRUE)
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Remote port (WWN = %s) connectivity lost for "
|
||||
"logical port (WWN = %s)\n",
|
||||
rpwwn_buf, lpwwn_buf);
|
||||
else
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Remote port (WWN = %s) offlined by "
|
||||
"logical port (WWN = %s)\n",
|
||||
rpwwn_buf, lpwwn_buf);
|
||||
|
|
|
|||
|
|
@ -402,7 +402,7 @@ bfa_ioc_sm_op_entry(struct bfa_ioc_s *ioc)
|
|||
|
||||
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_OK);
|
||||
bfa_ioc_hb_monitor(ioc);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level, "IOC enabled\n");
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level, "IOC enabled\n");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -444,7 +444,7 @@ bfa_ioc_sm_disabling_entry(struct bfa_ioc_s *ioc)
|
|||
{
|
||||
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
|
||||
bfa_iocpf_disable(ioc);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level, "IOC disabled\n");
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level, "IOC disabled\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -565,7 +565,7 @@ bfa_ioc_sm_fail_entry(struct bfa_ioc_s *ioc)
|
|||
notify->cbfn(notify->cbarg);
|
||||
}
|
||||
|
||||
BFA_LOG(KERN_CRIT, bfad, log_level,
|
||||
BFA_LOG(KERN_CRIT, bfad, bfa_log_level,
|
||||
"Heart Beat of IOC has failed\n");
|
||||
}
|
||||
|
||||
|
|
@ -1812,7 +1812,7 @@ bfa_ioc_pf_fwmismatch(struct bfa_ioc_s *ioc)
|
|||
* Provide enable completion callback.
|
||||
*/
|
||||
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
|
||||
BFA_LOG(KERN_WARNING, bfad, log_level,
|
||||
BFA_LOG(KERN_WARNING, bfad, bfa_log_level,
|
||||
"Running firmware version is incompatible "
|
||||
"with the driver version\n");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2138,7 +2138,7 @@ bfa_fcport_sm_enabling_qwait(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_DISABLE, 0, "Port Disable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port disabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2198,7 +2198,7 @@ bfa_fcport_sm_enabling(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_DISABLE, 0, "Port Disable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port disabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2251,7 +2251,7 @@ bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport,
|
|||
|
||||
bfa_fcport_scn(fcport, BFA_PORT_LINKUP, BFA_FALSE);
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port online: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2277,7 +2277,7 @@ bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_DISABLE, 0, "Port Disable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port disabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2322,9 +2322,9 @@ bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_DISABLE, 0, "Port Disable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port offline: WWN = %s\n", pwwn_buf);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port disabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2336,10 +2336,10 @@ bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
|
|||
BFA_PL_EID_PORT_ST_CHANGE, 0, "Port Linkdown");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
if (BFA_PORT_IS_DISABLED(fcport->bfa))
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port offline: WWN = %s\n", pwwn_buf);
|
||||
else
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Base port (WWN = %s) "
|
||||
"lost fabric connectivity\n", pwwn_buf);
|
||||
break;
|
||||
|
|
@ -2349,10 +2349,10 @@ bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
|
|||
bfa_fcport_reset_linkinfo(fcport);
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
if (BFA_PORT_IS_DISABLED(fcport->bfa))
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port offline: WWN = %s\n", pwwn_buf);
|
||||
else
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Base port (WWN = %s) "
|
||||
"lost fabric connectivity\n", pwwn_buf);
|
||||
break;
|
||||
|
|
@ -2363,10 +2363,10 @@ bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
|
|||
bfa_fcport_scn(fcport, BFA_PORT_LINKDOWN, BFA_FALSE);
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
if (BFA_PORT_IS_DISABLED(fcport->bfa))
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port offline: WWN = %s\n", pwwn_buf);
|
||||
else
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"Base port (WWN = %s) "
|
||||
"lost fabric connectivity\n", pwwn_buf);
|
||||
break;
|
||||
|
|
@ -2497,7 +2497,7 @@ bfa_fcport_sm_disabling(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_ENABLE, 0, "Port Enable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port enabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
@ -2551,7 +2551,7 @@ bfa_fcport_sm_disabled(struct bfa_fcport_s *fcport,
|
|||
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
|
||||
BFA_PL_EID_PORT_ENABLE, 0, "Port Enable");
|
||||
wwn2str(pwwn_buf, fcport->pwwn);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"Base port enabled: WWN = %s\n", pwwn_buf);
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ int reqq_size, rspq_size, num_sgpgs;
|
|||
int rport_del_timeout = BFA_FCS_RPORT_DEF_DEL_TIMEOUT;
|
||||
int bfa_lun_queue_depth = BFAD_LUN_QUEUE_DEPTH;
|
||||
int bfa_io_max_sge = BFAD_IO_MAX_SGE;
|
||||
int log_level = 3; /* WARNING log level */
|
||||
int bfa_log_level = 3; /* WARNING log level */
|
||||
int ioc_auto_recover = BFA_TRUE;
|
||||
int bfa_linkup_delay = -1;
|
||||
int fdmi_enable = BFA_TRUE;
|
||||
|
|
@ -108,8 +108,8 @@ module_param(bfa_lun_queue_depth, int, S_IRUGO | S_IWUSR);
|
|||
MODULE_PARM_DESC(bfa_lun_queue_depth, "Lun queue depth, default=32, Range[>0]");
|
||||
module_param(bfa_io_max_sge, int, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(bfa_io_max_sge, "Max io scatter/gather elements, default=255");
|
||||
module_param(log_level, int, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(log_level, "Driver log level, default=3, "
|
||||
module_param(bfa_log_level, int, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(bfa_log_level, "Driver log level, default=3, "
|
||||
"Range[Critical:1|Error:2|Warning:3|Info:4]");
|
||||
module_param(ioc_auto_recover, int, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(ioc_auto_recover, "IOC auto recovery, default=1, "
|
||||
|
|
@ -1112,7 +1112,7 @@ bfad_start_ops(struct bfad_s *bfad) {
|
|||
} else
|
||||
bfad_os_rport_online_wait(bfad);
|
||||
|
||||
BFA_LOG(KERN_INFO, bfad, log_level, "bfa device claimed\n");
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level, "bfa device claimed\n");
|
||||
|
||||
return BFA_STATUS_OK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ extern int num_sgpgs;
|
|||
extern int rport_del_timeout;
|
||||
extern int bfa_lun_queue_depth;
|
||||
extern int bfa_io_max_sge;
|
||||
extern int log_level;
|
||||
extern int bfa_log_level;
|
||||
extern int ioc_auto_recover;
|
||||
extern int bfa_linkup_delay;
|
||||
extern int msix_disable_cb;
|
||||
|
|
|
|||
|
|
@ -30,8 +30,7 @@ DEFINE_IDR(bfad_im_port_index);
|
|||
struct scsi_transport_template *bfad_im_scsi_transport_template;
|
||||
struct scsi_transport_template *bfad_im_scsi_vport_transport_template;
|
||||
static void bfad_im_itnim_work_handler(struct work_struct *work);
|
||||
static int bfad_im_queuecommand(struct scsi_cmnd *cmnd,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
static int bfad_im_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *cmnd);
|
||||
static int bfad_im_slave_alloc(struct scsi_device *sdev);
|
||||
static void bfad_im_fc_rport_add(struct bfad_im_port_s *im_port,
|
||||
struct bfad_itnim_s *itnim);
|
||||
|
|
@ -226,7 +225,8 @@ bfad_im_abort_handler(struct scsi_cmnd *cmnd)
|
|||
}
|
||||
|
||||
bfa_trc(bfad, hal_io->iotag);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level, "scsi%d: abort cmnd %p iotag %x\n",
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"scsi%d: abort cmnd %p iotag %x\n",
|
||||
im_port->shost->host_no, cmnd, hal_io->iotag);
|
||||
(void) bfa_ioim_abort(hal_io);
|
||||
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
|
||||
|
|
@ -242,7 +242,7 @@ bfad_im_abort_handler(struct scsi_cmnd *cmnd)
|
|||
|
||||
cmnd->scsi_done(cmnd);
|
||||
bfa_trc(bfad, hal_io->iotag);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"scsi%d: complete abort 0x%p iotag 0x%x\n",
|
||||
im_port->shost->host_no, cmnd, hal_io->iotag);
|
||||
return SUCCESS;
|
||||
|
|
@ -261,7 +261,7 @@ bfad_im_target_reset_send(struct bfad_s *bfad, struct scsi_cmnd *cmnd,
|
|||
|
||||
tskim = bfa_tskim_alloc(&bfad->bfa, (struct bfad_tskim_s *) cmnd);
|
||||
if (!tskim) {
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"target reset, fail to allocate tskim\n");
|
||||
rc = BFA_STATUS_FAILED;
|
||||
goto out;
|
||||
|
|
@ -312,7 +312,7 @@ bfad_im_reset_lun_handler(struct scsi_cmnd *cmnd)
|
|||
|
||||
tskim = bfa_tskim_alloc(&bfad->bfa, (struct bfad_tskim_s *) cmnd);
|
||||
if (!tskim) {
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"LUN reset, fail to allocate tskim");
|
||||
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
|
||||
rc = FAILED;
|
||||
|
|
@ -337,7 +337,7 @@ bfad_im_reset_lun_handler(struct scsi_cmnd *cmnd)
|
|||
|
||||
task_status = cmnd->SCp.Status >> 1;
|
||||
if (task_status != BFI_TSKIM_STS_OK) {
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"LUN reset failure, status: %d\n", task_status);
|
||||
rc = FAILED;
|
||||
}
|
||||
|
|
@ -381,7 +381,7 @@ bfad_im_reset_bus_handler(struct scsi_cmnd *cmnd)
|
|||
|
||||
task_status = cmnd->SCp.Status >> 1;
|
||||
if (task_status != BFI_TSKIM_STS_OK) {
|
||||
BFA_LOG(KERN_ERR, bfad, log_level,
|
||||
BFA_LOG(KERN_ERR, bfad, bfa_log_level,
|
||||
"target reset failure,"
|
||||
" status: %d\n", task_status);
|
||||
err_cnt++;
|
||||
|
|
@ -461,7 +461,7 @@ bfa_fcb_itnim_free(struct bfad_s *bfad, struct bfad_itnim_s *itnim_drv)
|
|||
fcid = bfa_fcs_itnim_get_fcid(&itnim_drv->fcs_itnim);
|
||||
wwn2str(wwpn_str, wwpn);
|
||||
fcid2str(fcid_str, fcid);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"ITNIM FREE scsi%d: FCID: %s WWPN: %s\n",
|
||||
port->im_port->shost->host_no,
|
||||
fcid_str, wwpn_str);
|
||||
|
|
@ -590,7 +590,7 @@ void
|
|||
bfad_im_scsi_host_free(struct bfad_s *bfad, struct bfad_im_port_s *im_port)
|
||||
{
|
||||
bfa_trc(bfad, bfad->inst_no);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level, "Free scsi%d\n",
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level, "Free scsi%d\n",
|
||||
im_port->shost->host_no);
|
||||
|
||||
fc_remove_host(im_port->shost);
|
||||
|
|
@ -1049,7 +1049,7 @@ bfad_im_itnim_work_handler(struct work_struct *work)
|
|||
fcid2str(fcid_str, fcid);
|
||||
list_add_tail(&itnim->list_entry,
|
||||
&im_port->itnim_mapped_list);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"ITNIM ONLINE Target: %d:0:%d "
|
||||
"FCID: %s WWPN: %s\n",
|
||||
im_port->shost->host_no,
|
||||
|
|
@ -1082,7 +1082,7 @@ bfad_im_itnim_work_handler(struct work_struct *work)
|
|||
wwn2str(wwpn_str, wwpn);
|
||||
fcid2str(fcid_str, fcid);
|
||||
list_del(&itnim->list_entry);
|
||||
BFA_LOG(KERN_INFO, bfad, log_level,
|
||||
BFA_LOG(KERN_INFO, bfad, bfa_log_level,
|
||||
"ITNIM OFFLINE Target: %d:0:%d "
|
||||
"FCID: %s WWPN: %s\n",
|
||||
im_port->shost->host_no,
|
||||
|
|
@ -1120,7 +1120,7 @@ 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(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
||||
bfad_im_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct bfad_im_port_s *im_port =
|
||||
(struct bfad_im_port_s *) cmnd->device->host->hostdata[0];
|
||||
|
|
@ -1187,6 +1187,8 @@ out_fail_cmd:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(bfad_im_queuecommand)
|
||||
|
||||
void
|
||||
bfad_os_rport_online_wait(struct bfad_s *bfad)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1080,7 +1080,7 @@ static void build_srb(struct scsi_cmnd *cmd, struct DeviceCtlBlk *dcb,
|
|||
* and is expected to be held on return.
|
||||
*
|
||||
**/
|
||||
static int dc395x_queue_command(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct DeviceCtlBlk *dcb;
|
||||
struct ScsiReqBlk *srb;
|
||||
|
|
@ -1154,6 +1154,7 @@ complete:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(dc395x_queue_command)
|
||||
|
||||
/*
|
||||
* Return the disk geometry for the given SCSI device.
|
||||
|
|
|
|||
|
|
@ -423,7 +423,7 @@ static int adpt_slave_configure(struct scsi_device * device)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int adpt_queue(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
static int adpt_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
adpt_hba* pHba = NULL;
|
||||
struct adpt_device* pDev = NULL; /* dpt per device information */
|
||||
|
|
@ -491,6 +491,8 @@ static int adpt_queue(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd *))
|
|||
return adpt_scsi_to_i2o(pHba, cmd, pDev);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(adpt_queue)
|
||||
|
||||
static int adpt_bios_param(struct scsi_device *sdev, struct block_device *dev,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
*/
|
||||
|
||||
static int adpt_detect(struct scsi_host_template * sht);
|
||||
static int adpt_queue(struct scsi_cmnd * cmd, void (*cmdcomplete) (struct scsi_cmnd *));
|
||||
static int adpt_queue(struct Scsi_Host *h, struct scsi_cmnd * cmd);
|
||||
static int adpt_abort(struct scsi_cmnd * cmd);
|
||||
static int adpt_reset(struct scsi_cmnd* cmd);
|
||||
static int adpt_release(struct Scsi_Host *host);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ static int dtc_abort(Scsi_Cmnd *);
|
|||
static int dtc_biosparam(struct scsi_device *, struct block_device *,
|
||||
sector_t, int*);
|
||||
static int dtc_detect(struct scsi_host_template *);
|
||||
static int dtc_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
|
||||
static int dtc_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int dtc_bus_reset(Scsi_Cmnd *);
|
||||
|
||||
#ifndef CMD_PER_LUN
|
||||
|
|
|
|||
|
|
@ -505,8 +505,7 @@
|
|||
|
||||
static int eata2x_detect(struct scsi_host_template *);
|
||||
static int eata2x_release(struct Scsi_Host *);
|
||||
static int eata2x_queuecommand(struct scsi_cmnd *,
|
||||
void (*done) (struct scsi_cmnd *));
|
||||
static int eata2x_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int eata2x_eh_abort(struct scsi_cmnd *);
|
||||
static int eata2x_eh_host_reset(struct scsi_cmnd *);
|
||||
static int eata2x_bios_param(struct scsi_device *, struct block_device *,
|
||||
|
|
@ -1758,7 +1757,7 @@ static void scsi_to_dev_dir(unsigned int i, struct hostdata *ha)
|
|||
|
||||
}
|
||||
|
||||
static int eata2x_queuecommand(struct scsi_cmnd *SCpnt,
|
||||
static int eata2x_queuecommand_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *shost = SCpnt->device->host;
|
||||
|
|
@ -1843,6 +1842,8 @@ static int eata2x_queuecommand(struct scsi_cmnd *SCpnt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(eata2x_queuecommand)
|
||||
|
||||
static int eata2x_eh_abort(struct scsi_cmnd *SCarg)
|
||||
{
|
||||
struct Scsi_Host *shost = SCarg->device->host;
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ static inline unsigned int eata_pio_send_command(unsigned long base, unsigned ch
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int eata_pio_queue(struct scsi_cmnd *cmd,
|
||||
static int eata_pio_queue_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
unsigned int x, y;
|
||||
|
|
@ -438,6 +438,8 @@ static int eata_pio_queue(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(eata_pio_queue)
|
||||
|
||||
static int eata_pio_abort(struct scsi_cmnd *cmd)
|
||||
{
|
||||
unsigned int loop = 100;
|
||||
|
|
|
|||
|
|
@ -916,7 +916,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(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int esp_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct scsi_device *dev = cmd->device;
|
||||
struct esp *esp = shost_priv(dev->host);
|
||||
|
|
@ -941,6 +941,8 @@ static int esp_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(esp_queuecommand)
|
||||
|
||||
static int esp_check_gross_error(struct esp *esp)
|
||||
{
|
||||
if (esp->sreg & ESP_STAT_SPAM) {
|
||||
|
|
|
|||
|
|
@ -1072,7 +1072,7 @@ static int fd_mcs_release(struct Scsi_Host *shpnt)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int fd_mcs_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
static int fd_mcs_queue_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
struct Scsi_Host *shpnt = SCpnt->device->host;
|
||||
|
||||
|
|
@ -1122,6 +1122,8 @@ static int fd_mcs_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(fd_mcs_queue)
|
||||
|
||||
#if DEBUG_ABORT || DEBUG_RESET
|
||||
static void fd_mcs_print_info(Scsi_Cmnd * SCpnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1419,7 +1419,7 @@ static irqreturn_t do_fdomain_16x0_intr(int irq, void *dev_id)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt,
|
||||
static int fdomain_16x0_queue_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
if (in_command) {
|
||||
|
|
@ -1469,6 +1469,8 @@ static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(fdomain_16x0_queue)
|
||||
|
||||
#if DEBUG_ABORT
|
||||
static void print_info(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ void fnic_set_port_id(struct fc_lport *, u32, struct fc_frame *);
|
|||
void fnic_update_mac(struct fc_lport *, u8 *new);
|
||||
void fnic_update_mac_locked(struct fnic *, u8 *new);
|
||||
|
||||
int fnic_queuecommand(struct scsi_cmnd *, void (*done)(struct scsi_cmnd *));
|
||||
int fnic_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
int fnic_abort_cmd(struct scsi_cmnd *);
|
||||
int fnic_device_reset(struct scsi_cmnd *);
|
||||
int fnic_host_reset(struct scsi_cmnd *);
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ 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.
|
||||
*/
|
||||
int fnic_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
||||
static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct fc_lport *lp;
|
||||
struct fc_rport *rport;
|
||||
|
|
@ -457,6 +457,8 @@ out:
|
|||
return ret;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(fnic_queuecommand)
|
||||
|
||||
/*
|
||||
* fnic_fcpio_fw_reset_cmpl_handler
|
||||
* Routine to handle fw reset completion
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
static int generic_NCR5380_abort(Scsi_Cmnd *);
|
||||
static int generic_NCR5380_detect(struct scsi_host_template *);
|
||||
static int generic_NCR5380_release_resources(struct Scsi_Host *);
|
||||
static int generic_NCR5380_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
|
||||
static int generic_NCR5380_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int generic_NCR5380_bus_reset(Scsi_Cmnd *);
|
||||
static const char* generic_NCR5380_info(struct Scsi_Host *);
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ static long gdth_unlocked_ioctl(struct file *filep, unsigned int cmd,
|
|||
unsigned long arg);
|
||||
|
||||
static void gdth_flush(gdth_ha_str *ha);
|
||||
static int gdth_queuecommand(Scsi_Cmnd *scp,void (*done)(Scsi_Cmnd *));
|
||||
static int gdth_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static int __gdth_queuecommand(gdth_ha_str *ha, struct scsi_cmnd *scp,
|
||||
struct gdth_cmndinfo *cmndinfo);
|
||||
static void gdth_scsi_done(struct scsi_cmnd *scp);
|
||||
|
|
@ -4004,7 +4004,7 @@ static int gdth_bios_param(struct scsi_device *sdev,struct block_device *bdev,se
|
|||
}
|
||||
|
||||
|
||||
static int gdth_queuecommand(struct scsi_cmnd *scp,
|
||||
static int gdth_queuecommand_lck(struct scsi_cmnd *scp,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
gdth_ha_str *ha = shost_priv(scp->device->host);
|
||||
|
|
@ -4022,6 +4022,8 @@ static int gdth_queuecommand(struct scsi_cmnd *scp,
|
|||
return __gdth_queuecommand(ha, scp, cmndinfo);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(gdth_queuecommand)
|
||||
|
||||
static int __gdth_queuecommand(gdth_ha_str *ha, struct scsi_cmnd *scp,
|
||||
struct gdth_cmndinfo *cmndinfo)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#include <linux/seq_file.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/compat.h>
|
||||
#include <linux/blktrace_api.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
|
@ -91,11 +90,7 @@ static const struct pci_device_id hpsa_pci_device_id[] = {
|
|||
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3252},
|
||||
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3253},
|
||||
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3254},
|
||||
#define PCI_DEVICE_ID_HP_CISSF 0x333f
|
||||
{PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSF, 0x103C, 0x333F},
|
||||
{PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
|
||||
{PCI_VENDOR_ID_COMPAQ, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
{PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
|
||||
{0,}
|
||||
};
|
||||
|
|
@ -114,8 +109,6 @@ static struct board_type products[] = {
|
|||
{0x3249103C, "Smart Array P812", &SA5_access},
|
||||
{0x324a103C, "Smart Array P712m", &SA5_access},
|
||||
{0x324b103C, "Smart Array P711m", &SA5_access},
|
||||
{0x3233103C, "StorageWorks P1210m", &SA5_access},
|
||||
{0x333F103C, "StorageWorks P1210m", &SA5_access},
|
||||
{0x3250103C, "Smart Array", &SA5_access},
|
||||
{0x3250113C, "Smart Array", &SA5_access},
|
||||
{0x3250123C, "Smart Array", &SA5_access},
|
||||
|
|
@ -143,8 +136,7 @@ static void fill_cmd(struct CommandList *c, u8 cmd, struct ctlr_info *h,
|
|||
void *buff, size_t size, u8 page_code, unsigned char *scsi3addr,
|
||||
int cmd_type);
|
||||
|
||||
static int hpsa_scsi_queue_command(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
static int hpsa_scsi_queue_command(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static void hpsa_scan_start(struct Scsi_Host *);
|
||||
static int hpsa_scan_finished(struct Scsi_Host *sh,
|
||||
unsigned long elapsed_time);
|
||||
|
|
@ -1926,7 +1918,7 @@ sglist_finished:
|
|||
}
|
||||
|
||||
|
||||
static int hpsa_scsi_queue_command(struct scsi_cmnd *cmd,
|
||||
static int hpsa_scsi_queue_command_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct ctlr_info *h;
|
||||
|
|
@ -2020,6 +2012,8 @@ static int hpsa_scsi_queue_command(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(hpsa_scsi_queue_command)
|
||||
|
||||
static void hpsa_scan_start(struct Scsi_Host *sh)
|
||||
{
|
||||
struct ctlr_info *h = shost_to_hba(sh);
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@ static void hptiop_post_req_mv(struct hptiop_hba *hba,
|
|||
MVIOP_MU_QUEUE_ADDR_HOST_BIT | size_bit, hba);
|
||||
}
|
||||
|
||||
static int hptiop_queuecommand(struct scsi_cmnd *scp,
|
||||
static int hptiop_queuecommand_lck(struct scsi_cmnd *scp,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *host = scp->device->host;
|
||||
|
|
@ -819,6 +819,8 @@ cmd_done:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(hptiop_queuecommand)
|
||||
|
||||
static const char *hptiop_info(struct Scsi_Host *host)
|
||||
{
|
||||
return driver_name_long;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
#include <scsi/scsi_host.h>
|
||||
|
||||
/* Common forward declarations for all Linux-versions: */
|
||||
static int ibmmca_queuecommand (Scsi_Cmnd *, void (*done) (Scsi_Cmnd *));
|
||||
static int ibmmca_queuecommand (struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int ibmmca_abort (Scsi_Cmnd *);
|
||||
static int ibmmca_host_reset (Scsi_Cmnd *);
|
||||
static int ibmmca_biosparam (struct scsi_device *, struct block_device *, sector_t, int *);
|
||||
|
|
@ -1691,7 +1691,7 @@ static int __devexit ibmmca_remove(struct device *dev)
|
|||
}
|
||||
|
||||
/* The following routine is the SCSI command queue for the midlevel driver */
|
||||
static int ibmmca_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
static int ibmmca_queuecommand_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
unsigned int ldn;
|
||||
unsigned int scsi_cmd;
|
||||
|
|
@ -1996,6 +1996,8 @@ static int ibmmca_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ibmmca_queuecommand)
|
||||
|
||||
static int __ibmmca_abort(Scsi_Cmnd * cmd)
|
||||
{
|
||||
/* Abort does not work, as the adapter never generates an interrupt on
|
||||
|
|
|
|||
|
|
@ -1606,7 +1606,7 @@ static inline int ibmvfc_host_chkready(struct ibmvfc_host *vhost)
|
|||
* Returns:
|
||||
* 0 on success / other on failure
|
||||
**/
|
||||
static int ibmvfc_queuecommand(struct scsi_cmnd *cmnd,
|
||||
static int ibmvfc_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct ibmvfc_host *vhost = shost_priv(cmnd->device->host);
|
||||
|
|
@ -1672,6 +1672,8 @@ static int ibmvfc_queuecommand(struct scsi_cmnd *cmnd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ibmvfc_queuecommand)
|
||||
|
||||
/**
|
||||
* ibmvfc_sync_completion - Signal that a synchronous command has completed
|
||||
* @evt: ibmvfc event struct
|
||||
|
|
|
|||
|
|
@ -713,7 +713,7 @@ static inline u16 lun_from_dev(struct scsi_device *dev)
|
|||
* @cmd: struct scsi_cmnd to be executed
|
||||
* @done: Callback function to be called when cmd is completed
|
||||
*/
|
||||
static int ibmvscsi_queuecommand(struct scsi_cmnd *cmnd,
|
||||
static int ibmvscsi_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct srp_cmd *srp_cmd;
|
||||
|
|
@ -766,6 +766,8 @@ static int ibmvscsi_queuecommand(struct scsi_cmnd *cmnd,
|
|||
return ibmvscsi_send_srp_event(evt_struct, hostdata, 0);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ibmvscsi_queuecommand)
|
||||
|
||||
/* ------------------------------------------------------------
|
||||
* Routines for driver initialization
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -926,7 +926,7 @@ static int imm_engine(imm_struct *dev, struct scsi_cmnd *cmd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int imm_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int imm_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
imm_struct *dev = imm_dev(cmd->device->host);
|
||||
|
|
@ -949,6 +949,8 @@ static int imm_queuecommand(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(imm_queuecommand)
|
||||
|
||||
/*
|
||||
* Apparently the disk->capacity attribute is off by 1 sector
|
||||
* for all disk drives. We add the one here, but it should really
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ static uchar calc_sync_xfer(unsigned int period, unsigned int offset)
|
|||
|
||||
static void in2000_execute(struct Scsi_Host *instance);
|
||||
|
||||
static int in2000_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
static int in2000_queuecommand_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
||||
{
|
||||
struct Scsi_Host *instance;
|
||||
struct IN2000_hostdata *hostdata;
|
||||
|
|
@ -431,6 +431,8 @@ static int in2000_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(in2000_queuecommand)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -396,7 +396,7 @@ struct IN2000_hostdata {
|
|||
flags)
|
||||
|
||||
static int in2000_detect(struct scsi_host_template *) in2000__INIT;
|
||||
static int in2000_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
|
||||
static int in2000_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int in2000_abort(Scsi_Cmnd *);
|
||||
static void in2000_setup(char *, int *) in2000__INIT;
|
||||
static int in2000_biosparam(struct scsi_device *, struct block_device *,
|
||||
|
|
|
|||
|
|
@ -2639,7 +2639,7 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
|
|||
* will cause the mid layer to call us again later with the command)
|
||||
*/
|
||||
|
||||
static int i91u_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int i91u_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct initio_host *host = (struct initio_host *) cmd->device->host->hostdata;
|
||||
|
|
@ -2656,6 +2656,8 @@ static int i91u_queuecommand(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(i91u_queuecommand)
|
||||
|
||||
/**
|
||||
* i91u_bus_reset - reset the SCSI bus
|
||||
* @cmnd: Command block we want to trigger the reset for
|
||||
|
|
|
|||
|
|
@ -5709,7 +5709,7 @@ static void ipr_scsi_done(struct ipr_cmnd *ipr_cmd)
|
|||
* SCSI_MLQUEUE_DEVICE_BUSY if device is busy
|
||||
* SCSI_MLQUEUE_HOST_BUSY if host is busy
|
||||
**/
|
||||
static int ipr_queuecommand(struct scsi_cmnd *scsi_cmd,
|
||||
static int ipr_queuecommand_lck(struct scsi_cmnd *scsi_cmd,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct ipr_ioa_cfg *ioa_cfg;
|
||||
|
|
@ -5792,6 +5792,8 @@ static int ipr_queuecommand(struct scsi_cmnd *scsi_cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ipr_queuecommand)
|
||||
|
||||
/**
|
||||
* ipr_ioctl - IOCTL handler
|
||||
* @sdev: scsi device struct
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ static int ips_detect(struct scsi_host_template *);
|
|||
static int ips_release(struct Scsi_Host *);
|
||||
static int ips_eh_abort(struct scsi_cmnd *);
|
||||
static int ips_eh_reset(struct scsi_cmnd *);
|
||||
static int ips_queue(struct scsi_cmnd *, void (*)(struct scsi_cmnd *));
|
||||
static int ips_queue(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static const char *ips_info(struct Scsi_Host *);
|
||||
static irqreturn_t do_ipsintr(int, void *);
|
||||
static int ips_hainit(ips_ha_t *);
|
||||
|
|
@ -1046,7 +1046,7 @@ static int ips_eh_reset(struct scsi_cmnd *SC)
|
|||
/* Linux obtains io_request_lock before calling this function */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
static int ips_queue(struct scsi_cmnd *SC, void (*done) (struct scsi_cmnd *))
|
||||
static int ips_queue_lck(struct scsi_cmnd *SC, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
ips_ha_t *ha;
|
||||
ips_passthru_t *pt;
|
||||
|
|
@ -1137,6 +1137,8 @@ static int ips_queue(struct scsi_cmnd *SC, void (*done) (struct scsi_cmnd *))
|
|||
return (0);
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ips_queue)
|
||||
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* Routine Name: ips_biosparam */
|
||||
|
|
|
|||
|
|
@ -1753,7 +1753,7 @@ static inline int fc_fcp_lport_queue_ready(struct fc_lport *lport)
|
|||
* This is the i/o strategy routine, called by the SCSI layer. This routine
|
||||
* is called with the host_lock held.
|
||||
*/
|
||||
int fc_queuecommand(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int fc_queuecommand_lck(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct fc_lport *lport;
|
||||
struct fc_rport *rport = starget_to_rport(scsi_target(sc_cmd->device));
|
||||
|
|
@ -1851,6 +1851,8 @@ out:
|
|||
spin_lock_irq(lport->host->host_lock);
|
||||
return rc;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(fc_queuecommand)
|
||||
EXPORT_SYMBOL(fc_queuecommand);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1599,7 +1599,7 @@ enum {
|
|||
FAILURE_SESSION_NOT_READY,
|
||||
};
|
||||
|
||||
int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
||||
static int iscsi_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct iscsi_cls_session *cls_session;
|
||||
struct Scsi_Host *host;
|
||||
|
|
@ -1736,6 +1736,8 @@ fault:
|
|||
spin_lock(host->host_lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(iscsi_queuecommand)
|
||||
EXPORT_SYMBOL_GPL(iscsi_queuecommand);
|
||||
|
||||
int iscsi_change_queue_depth(struct scsi_device *sdev, int depth, int reason)
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ int sas_queue_up(struct sas_task *task)
|
|||
* Note: XXX: Remove the host unlock/lock pair when SCSI Core can
|
||||
* call us without holding an IRQ spinlock...
|
||||
*/
|
||||
int sas_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int sas_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*scsi_done)(struct scsi_cmnd *))
|
||||
__releases(host->host_lock)
|
||||
__acquires(dev->sata_dev.ap->lock)
|
||||
|
|
@ -254,6 +254,8 @@ out:
|
|||
return res;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(sas_queuecommand)
|
||||
|
||||
static void sas_eh_finish_cmd(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct sas_task *task = TO_SAS_TASK(cmd);
|
||||
|
|
|
|||
|
|
@ -2899,7 +2899,7 @@ void lpfc_poll_timeout(unsigned long ptr)
|
|||
* SCSI_MLQUEUE_HOST_BUSY - Block all devices served by this host temporarily.
|
||||
**/
|
||||
static int
|
||||
lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
||||
lpfc_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *shost = cmnd->device->host;
|
||||
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
|
||||
|
|
@ -3060,6 +3060,8 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(lpfc_queuecommand)
|
||||
|
||||
/**
|
||||
* lpfc_abort_handler - scsi_host_template eh_abort_handler entry point
|
||||
* @cmnd: Pointer to scsi_cmnd data structure.
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ static void cmd_done(struct fsc_state *, int result);
|
|||
static void set_dma_cmds(struct fsc_state *, struct scsi_cmnd *);
|
||||
|
||||
|
||||
static int mac53c94_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int mac53c94_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct fsc_state *state;
|
||||
|
||||
|
|
@ -99,6 +99,8 @@ static int mac53c94_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(mac53c94_queue)
|
||||
|
||||
static int mac53c94_host_reset(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct fsc_state *state = (struct fsc_state *) cmd->device->host->hostdata;
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@ mega_runpendq(adapter_t *adapter)
|
|||
* The command queuing entry point for the mid-layer.
|
||||
*/
|
||||
static int
|
||||
megaraid_queue(Scsi_Cmnd *scmd, void (*done)(Scsi_Cmnd *))
|
||||
megaraid_queue_lck(Scsi_Cmnd *scmd, void (*done)(Scsi_Cmnd *))
|
||||
{
|
||||
adapter_t *adapter;
|
||||
scb_t *scb;
|
||||
|
|
@ -409,6 +409,8 @@ megaraid_queue(Scsi_Cmnd *scmd, void (*done)(Scsi_Cmnd *))
|
|||
return busy;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(megaraid_queue)
|
||||
|
||||
/**
|
||||
* mega_allocate_scb()
|
||||
* @adapter - pointer to our soft state
|
||||
|
|
@ -4456,7 +4458,7 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru)
|
|||
|
||||
scb->idx = CMDID_INT_CMDS;
|
||||
|
||||
megaraid_queue(scmd, mega_internal_done);
|
||||
megaraid_queue_lck(scmd, mega_internal_done);
|
||||
|
||||
wait_for_completion(&adapter->int_waitq);
|
||||
|
||||
|
|
|
|||
|
|
@ -987,7 +987,7 @@ static int mega_query_adapter(adapter_t *);
|
|||
static int issue_scb(adapter_t *, scb_t *);
|
||||
static int mega_setup_mailbox(adapter_t *);
|
||||
|
||||
static int megaraid_queue (Scsi_Cmnd *, void (*)(Scsi_Cmnd *));
|
||||
static int megaraid_queue (struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static scb_t * mega_build_cmd(adapter_t *, Scsi_Cmnd *, int *);
|
||||
static void __mega_runpendq(adapter_t *);
|
||||
static int issue_scb_block(adapter_t *, u_char *);
|
||||
|
|
|
|||
|
|
@ -113,8 +113,7 @@ static int megaraid_mbox_fire_sync_cmd(adapter_t *);
|
|||
static void megaraid_mbox_display_scb(adapter_t *, scb_t *);
|
||||
static void megaraid_mbox_setup_device_map(adapter_t *);
|
||||
|
||||
static int megaraid_queue_command(struct scsi_cmnd *,
|
||||
void (*)(struct scsi_cmnd *));
|
||||
static int megaraid_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static scb_t *megaraid_mbox_build_cmd(adapter_t *, struct scsi_cmnd *, int *);
|
||||
static void megaraid_mbox_runpendq(adapter_t *, scb_t *);
|
||||
static void megaraid_mbox_prepare_pthru(adapter_t *, scb_t *,
|
||||
|
|
@ -1484,7 +1483,7 @@ mbox_post_cmd(adapter_t *adapter, scb_t *scb)
|
|||
* Queue entry point for mailbox based controllers.
|
||||
*/
|
||||
static int
|
||||
megaraid_queue_command(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
||||
megaraid_queue_command_lck(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
adapter_t *adapter;
|
||||
scb_t *scb;
|
||||
|
|
@ -1513,6 +1512,8 @@ megaraid_queue_command(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
|
|||
return if_busy;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(megaraid_queue_command)
|
||||
|
||||
/**
|
||||
* megaraid_mbox_build_cmd - transform the mid-layer scsi commands
|
||||
* @adapter : controller's soft state
|
||||
|
|
|
|||
|
|
@ -1334,7 +1334,7 @@ megasas_dump_pending_frames(struct megasas_instance *instance)
|
|||
* @done: Callback entry point
|
||||
*/
|
||||
static int
|
||||
megasas_queue_command(struct scsi_cmnd *scmd, void (*done) (struct scsi_cmnd *))
|
||||
megasas_queue_command_lck(struct scsi_cmnd *scmd, void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
u32 frame_count;
|
||||
struct megasas_cmd *cmd;
|
||||
|
|
@ -1417,6 +1417,8 @@ megasas_queue_command(struct scsi_cmnd *scmd, void (*done) (struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(megasas_queue_command)
|
||||
|
||||
static struct megasas_instance *megasas_lookup_instance(u16 host_no)
|
||||
{
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -1627,7 +1627,7 @@ static void cmd_complete(struct mesh_state *ms)
|
|||
* Called by midlayer with host locked to queue a new
|
||||
* request
|
||||
*/
|
||||
static int mesh_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
static int mesh_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct mesh_state *ms;
|
||||
|
||||
|
|
@ -1648,6 +1648,8 @@ static int mesh_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(mesh_queue)
|
||||
|
||||
/*
|
||||
* Called to handle interrupts, either call by the interrupt
|
||||
* handler (do_mesh_interrupt) or by other functions in
|
||||
|
|
|
|||
|
|
@ -3315,7 +3315,7 @@ _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status)
|
|||
* SCSI_MLQUEUE_HOST_BUSY if the entire host queue is full
|
||||
*/
|
||||
static int
|
||||
_scsih_qcmd(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))
|
||||
_scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
|
||||
struct MPT2SAS_DEVICE *sas_device_priv_data;
|
||||
|
|
@ -3441,6 +3441,8 @@ _scsih_qcmd(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))
|
|||
return SCSI_MLQUEUE_HOST_BUSY;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(_scsih_qcmd)
|
||||
|
||||
/**
|
||||
* _scsih_normalize_sense - normalize descriptor and fixed format sense data
|
||||
* @sense_buffer: sense data returned by target
|
||||
|
|
|
|||
|
|
@ -8029,7 +8029,7 @@ static int ncr53c8xx_slave_configure(struct scsi_device *device)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ncr53c8xx_queue_command (struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
|
||||
static int ncr53c8xx_queue_command_lck (struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb;
|
||||
unsigned long flags;
|
||||
|
|
@ -8068,6 +8068,8 @@ printk("ncr53c8xx : command successfully queued\n");
|
|||
return sts;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ncr53c8xx_queue_command)
|
||||
|
||||
irqreturn_t ncr53c8xx_intr(int irq, void *dev_id)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
|
|
|||
|
|
@ -196,8 +196,7 @@ static void __exit exit_nsp32 (void);
|
|||
static int nsp32_proc_info (struct Scsi_Host *, char *, char **, off_t, int, int);
|
||||
|
||||
static int nsp32_detect (struct pci_dev *pdev);
|
||||
static int nsp32_queuecommand(struct scsi_cmnd *,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
static int nsp32_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static const char *nsp32_info (struct Scsi_Host *);
|
||||
static int nsp32_release (struct Scsi_Host *);
|
||||
|
||||
|
|
@ -909,7 +908,7 @@ static int nsp32_setup_sg_table(struct scsi_cmnd *SCpnt)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static int nsp32_queuecommand(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
static int nsp32_queuecommand_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
|
||||
nsp32_target *target;
|
||||
|
|
@ -1050,6 +1049,8 @@ static int nsp32_queuecommand(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(nsp32_queuecommand)
|
||||
|
||||
/* initialize asic */
|
||||
static int nsp32hw_init(nsp32_hw_data *data)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -951,8 +951,8 @@ static int _osd_req_finalize_cdb_cont(struct osd_request *or, const u8 *cap_key)
|
|||
/* create a bio for continuation segment */
|
||||
bio = bio_map_kern(req_q, or->cdb_cont.buff, or->cdb_cont.total_bytes,
|
||||
GFP_KERNEL);
|
||||
if (unlikely(!bio))
|
||||
return -ENOMEM;
|
||||
if (IS_ERR(bio))
|
||||
return PTR_ERR(bio);
|
||||
|
||||
bio->bi_rw |= REQ_WRITE;
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ static int pas16_abort(Scsi_Cmnd *);
|
|||
static int pas16_biosparam(struct scsi_device *, struct block_device *,
|
||||
sector_t, int*);
|
||||
static int pas16_detect(struct scsi_host_template *);
|
||||
static int pas16_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
|
||||
static int pas16_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
|
||||
static int pas16_bus_reset(Scsi_Cmnd *);
|
||||
|
||||
#ifndef CMD_PER_LUN
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ static void nsp_scsi_done(struct scsi_cmnd *SCpnt)
|
|||
SCpnt->scsi_done(SCpnt);
|
||||
}
|
||||
|
||||
static int nsp_queuecommand(struct scsi_cmnd *SCpnt,
|
||||
static int nsp_queuecommand_lck(struct scsi_cmnd *SCpnt,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
#ifdef NSP_DEBUG
|
||||
|
|
@ -264,6 +264,8 @@ static int nsp_queuecommand(struct scsi_cmnd *SCpnt,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(nsp_queuecommand)
|
||||
|
||||
/*
|
||||
* setup PIO FIFO transfer mode and enable/disable to data out
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -299,8 +299,7 @@ static int nsp_proc_info (
|
|||
off_t offset,
|
||||
int length,
|
||||
int inout);
|
||||
static int nsp_queuecommand(struct scsi_cmnd *SCpnt,
|
||||
void (* done)(struct scsi_cmnd *SCpnt));
|
||||
static int nsp_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *SCpnt);
|
||||
|
||||
/* Error handler */
|
||||
/*static int nsp_eh_abort (struct scsi_cmnd *SCpnt);*/
|
||||
|
|
|
|||
|
|
@ -547,7 +547,7 @@ SYM53C500_info(struct Scsi_Host *SChost)
|
|||
}
|
||||
|
||||
static int
|
||||
SYM53C500_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
SYM53C500_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
int i;
|
||||
int port_base = SCpnt->device->host->io_port;
|
||||
|
|
@ -583,6 +583,8 @@ SYM53C500_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(SYM53C500_queue)
|
||||
|
||||
static int
|
||||
SYM53C500_host_reset(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@
|
|||
#include <linux/dma-mapping.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <scsi/libsas.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
#include <scsi/sas_ata.h>
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@
|
|||
static unsigned int pmcraid_debug_log;
|
||||
static unsigned int pmcraid_disable_aen;
|
||||
static unsigned int pmcraid_log_level = IOASC_LOG_LEVEL_MUST;
|
||||
static unsigned int pmcraid_enable_msix;
|
||||
|
||||
/*
|
||||
* Data structures to support multiple adapters by the LLD.
|
||||
|
|
@ -3478,7 +3479,7 @@ static int pmcraid_copy_sglist(
|
|||
* SCSI_MLQUEUE_DEVICE_BUSY if device is busy
|
||||
* SCSI_MLQUEUE_HOST_BUSY if host is busy
|
||||
*/
|
||||
static int pmcraid_queuecommand(
|
||||
static int pmcraid_queuecommand_lck(
|
||||
struct scsi_cmnd *scsi_cmd,
|
||||
void (*done) (struct scsi_cmnd *)
|
||||
)
|
||||
|
|
@ -3584,6 +3585,8 @@ static int pmcraid_queuecommand(
|
|||
return rc;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(pmcraid_queuecommand)
|
||||
|
||||
/**
|
||||
* pmcraid_open -char node "open" entry, allowed only users with admin access
|
||||
*/
|
||||
|
|
@ -4689,7 +4692,8 @@ pmcraid_register_interrupt_handler(struct pmcraid_instance *pinstance)
|
|||
int rc;
|
||||
struct pci_dev *pdev = pinstance->pdev;
|
||||
|
||||
if (pci_find_capability(pdev, PCI_CAP_ID_MSIX)) {
|
||||
if ((pmcraid_enable_msix) &&
|
||||
(pci_find_capability(pdev, PCI_CAP_ID_MSIX))) {
|
||||
int num_hrrq = PMCRAID_NUM_MSIX_VECTORS;
|
||||
struct msix_entry entries[PMCRAID_NUM_MSIX_VECTORS];
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
*/
|
||||
#define PMCRAID_DRIVER_NAME "PMC MaxRAID"
|
||||
#define PMCRAID_DEVFILE "pmcsas"
|
||||
#define PMCRAID_DRIVER_VERSION "2.0.3"
|
||||
#define PMCRAID_DRIVER_VERSION "1.0.3"
|
||||
#define PMCRAID_DRIVER_DATE __DATE__
|
||||
|
||||
#define PMCRAID_FW_VERSION_1 0x002
|
||||
|
|
@ -333,11 +333,9 @@ struct pmcraid_config_table_entry {
|
|||
__u8 lun[PMCRAID_LUN_LEN];
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
||||
/* extended configuration table sizes are of 64 bytes in size */
|
||||
#define PMCRAID_CFGTE_EXT_SIZE 32
|
||||
/* extended configuration table sizes are also of 32 bytes in size */
|
||||
struct pmcraid_config_table_entry_ext {
|
||||
struct pmcraid_config_table_entry cfgte;
|
||||
__u8 cfgte_ext[PMCRAID_CFGTE_EXT_SIZE];
|
||||
};
|
||||
|
||||
/* resource types (config_table_entry.resource_type values) */
|
||||
|
|
|
|||
|
|
@ -798,7 +798,7 @@ static int ppa_engine(ppa_struct *dev, struct scsi_cmnd *cmd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ppa_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int ppa_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
ppa_struct *dev = ppa_dev(cmd->device->host);
|
||||
|
|
@ -821,6 +821,8 @@ static int ppa_queuecommand(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ppa_queuecommand)
|
||||
|
||||
/*
|
||||
* Apparently the disk->capacity attribute is off by 1 sector
|
||||
* for all disk drives. We add the one here, but it should really
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ static int ps3rom_write_request(struct ps3_storage_device *dev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ps3rom_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int ps3rom_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct ps3rom_private *priv = shost_priv(cmd->device->host);
|
||||
|
|
@ -260,6 +260,8 @@ static int ps3rom_queuecommand(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(ps3rom_queuecommand)
|
||||
|
||||
static int decode_lv1_status(u64 status, unsigned char *sense_key,
|
||||
unsigned char *asc, unsigned char *ascq)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -727,7 +727,7 @@ qla1280_info(struct Scsi_Host *host)
|
|||
* context which is a big NO! NO!.
|
||||
**************************************************************************/
|
||||
static int
|
||||
qla1280_queuecommand(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
||||
qla1280_queuecommand_lck(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
struct scsi_qla_host *ha = (struct scsi_qla_host *)host->hostdata;
|
||||
|
|
@ -756,6 +756,8 @@ qla1280_queuecommand(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
|
|||
return status;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(qla1280_queuecommand)
|
||||
|
||||
enum action {
|
||||
ABORT_COMMAND,
|
||||
DEVICE_RESET,
|
||||
|
|
|
|||
|
|
@ -2409,7 +2409,6 @@ struct qla_hw_data {
|
|||
uint32_t enable_target_reset :1;
|
||||
uint32_t enable_lip_full_login :1;
|
||||
uint32_t enable_led_scheme :1;
|
||||
uint32_t inta_enabled :1;
|
||||
uint32_t msi_enabled :1;
|
||||
uint32_t msix_enabled :1;
|
||||
uint32_t disable_serdes :1;
|
||||
|
|
|
|||
|
|
@ -1061,6 +1061,7 @@ qla24xx_build_scsi_crc_2_iocbs(srb_t *sp, struct cmd_type_crc_2 *cmd_pkt,
|
|||
fcp_cmnd->additional_cdb_len |= 2;
|
||||
|
||||
int_to_scsilun(sp->cmd->device->lun, &fcp_cmnd->lun);
|
||||
host_to_fcp_swap((uint8_t *)&fcp_cmnd->lun, sizeof(fcp_cmnd->lun));
|
||||
memcpy(fcp_cmnd->cdb, cmd->cmnd, cmd->cmd_len);
|
||||
cmd_pkt->fcp_cmnd_dseg_len = cpu_to_le16(fcp_cmnd_len);
|
||||
cmd_pkt->fcp_cmnd_dseg_address[0] = cpu_to_le32(
|
||||
|
|
|
|||
|
|
@ -2491,14 +2491,15 @@ skip_msix:
|
|||
skip_msi:
|
||||
|
||||
ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler,
|
||||
IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp);
|
||||
ha->flags.msi_enabled ? 0 : IRQF_SHARED,
|
||||
QLA2XXX_DRIVER_NAME, rsp);
|
||||
if (ret) {
|
||||
qla_printk(KERN_WARNING, ha,
|
||||
"Failed to reserve interrupt %d already in use.\n",
|
||||
ha->pdev->irq);
|
||||
goto fail;
|
||||
}
|
||||
ha->flags.inta_enabled = 1;
|
||||
|
||||
clear_risc_ints:
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -2749,6 +2749,7 @@ sufficient_dsds:
|
|||
goto queuing_error_fcp_cmnd;
|
||||
|
||||
int_to_scsilun(sp->cmd->device->lun, &cmd_pkt->lun);
|
||||
host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
|
||||
|
||||
/* build FCP_CMND IU */
|
||||
memset(ctx->fcp_cmnd, 0, sizeof(struct fcp_cmnd));
|
||||
|
|
|
|||
|
|
@ -179,8 +179,7 @@ static int qla2xxx_slave_alloc(struct scsi_device *);
|
|||
static int qla2xxx_scan_finished(struct Scsi_Host *, unsigned long time);
|
||||
static void qla2xxx_scan_start(struct Scsi_Host *);
|
||||
static void qla2xxx_slave_destroy(struct scsi_device *);
|
||||
static int qla2xxx_queuecommand(struct scsi_cmnd *cmd,
|
||||
void (*fn)(struct scsi_cmnd *));
|
||||
static int qla2xxx_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static int qla2xxx_eh_abort(struct scsi_cmnd *);
|
||||
static int qla2xxx_eh_device_reset(struct scsi_cmnd *);
|
||||
static int qla2xxx_eh_target_reset(struct scsi_cmnd *);
|
||||
|
|
@ -535,7 +534,7 @@ qla2x00_get_new_sp(scsi_qla_host_t *vha, fc_port_t *fcport,
|
|||
}
|
||||
|
||||
static int
|
||||
qla2xxx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
qla2xxx_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
scsi_qla_host_t *vha = shost_priv(cmd->device->host);
|
||||
fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata;
|
||||
|
|
@ -609,6 +608,8 @@ qc24_fail_command:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(qla2xxx_queuecommand)
|
||||
|
||||
|
||||
/*
|
||||
* qla2x00_eh_wait_on_command
|
||||
|
|
@ -828,7 +829,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
|
|||
{
|
||||
scsi_qla_host_t *vha = shost_priv(cmd->device->host);
|
||||
srb_t *sp;
|
||||
int ret;
|
||||
int ret = SUCCESS;
|
||||
unsigned int id, lun;
|
||||
unsigned long flags;
|
||||
int wait = 0;
|
||||
|
|
@ -2063,6 +2064,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
ha->init_cb_size = sizeof(struct mid_init_cb_81xx);
|
||||
ha->gid_list_info_size = 8;
|
||||
ha->optrom_size = OPTROM_SIZE_82XX;
|
||||
ha->nvram_npiv_size = QLA_MAX_VPORTS_QLA25XX;
|
||||
ha->isp_ops = &qla82xx_isp_ops;
|
||||
ha->flash_conf_off = FARX_ACCESS_FLASH_CONF;
|
||||
ha->flash_data_off = FARX_ACCESS_FLASH_DATA;
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
/*
|
||||
* Driver version
|
||||
*/
|
||||
#define QLA2XXX_VERSION "8.03.04-k0"
|
||||
#define QLA2XXX_VERSION "8.03.05-k0"
|
||||
|
||||
#define QLA_DRIVER_MAJOR_VER 8
|
||||
#define QLA_DRIVER_MINOR_VER 3
|
||||
#define QLA_DRIVER_PATCH_VER 4
|
||||
#define QLA_DRIVER_PATCH_VER 5
|
||||
#define QLA_DRIVER_BETA_VER 0
|
||||
|
|
|
|||
|
|
@ -79,8 +79,7 @@ static enum blk_eh_timer_return qla4xxx_eh_cmd_timed_out(struct scsi_cmnd *sc);
|
|||
/*
|
||||
* SCSI host template entry points
|
||||
*/
|
||||
static int qla4xxx_queuecommand(struct scsi_cmnd *cmd,
|
||||
void (*done) (struct scsi_cmnd *));
|
||||
static int qla4xxx_queuecommand(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static int qla4xxx_eh_abort(struct scsi_cmnd *cmd);
|
||||
static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd);
|
||||
static int qla4xxx_eh_target_reset(struct scsi_cmnd *cmd);
|
||||
|
|
@ -464,7 +463,7 @@ void qla4xxx_srb_compl(struct kref *ref)
|
|||
* completion handling). Unfortunely, it sometimes calls the scheduler
|
||||
* in interrupt context which is a big NO! NO!.
|
||||
**/
|
||||
static int qla4xxx_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int qla4xxx_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct scsi_qla_host *ha = to_qla_host(cmd->device->host);
|
||||
|
|
@ -538,6 +537,8 @@ qc_fail_command:
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(qla4xxx_queuecommand)
|
||||
|
||||
/**
|
||||
* qla4xxx_mem_free - frees memory allocated to adapter
|
||||
* @ha: Pointer to host adapter structure.
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id)
|
|||
* Queued command
|
||||
*/
|
||||
|
||||
int qlogicfas408_queuecommand(struct scsi_cmnd *cmd,
|
||||
static int qlogicfas408_queuecommand_lck(struct scsi_cmnd *cmd,
|
||||
void (*done) (struct scsi_cmnd *))
|
||||
{
|
||||
struct qlogicfas408_priv *priv = get_priv_by_cmd(cmd);
|
||||
|
|
@ -459,6 +459,8 @@ int qlogicfas408_queuecommand(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
DEF_SCSI_QCMD(qlogicfas408_queuecommand)
|
||||
|
||||
/*
|
||||
* Return bios parameters
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -103,8 +103,7 @@ struct qlogicfas408_priv {
|
|||
#define get_priv_by_host(x) (struct qlogicfas408_priv *)&((x)->hostdata[0])
|
||||
|
||||
irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id);
|
||||
int qlogicfas408_queuecommand(struct scsi_cmnd * cmd,
|
||||
void (*done) (struct scsi_cmnd *));
|
||||
int qlogicfas408_queuecommand(struct Scsi_Host *h, struct scsi_cmnd * cmd);
|
||||
int qlogicfas408_biosparam(struct scsi_device * disk,
|
||||
struct block_device *dev,
|
||||
sector_t capacity, int ip[]);
|
||||
|
|
|
|||
|
|
@ -1003,7 +1003,7 @@ static int qlogicpti_slave_configure(struct scsi_device *sdev)
|
|||
*
|
||||
* "This code must fly." -davem
|
||||
*/
|
||||
static int qlogicpti_queuecommand(struct scsi_cmnd *Cmnd, void (*done)(struct scsi_cmnd *))
|
||||
static int qlogicpti_queuecommand_lck(struct scsi_cmnd *Cmnd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct Scsi_Host *host = Cmnd->device->host;
|
||||
struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata;
|
||||
|
|
@ -1052,6 +1052,8 @@ toss_command:
|
|||
return 1;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(qlogicpti_queuecommand)
|
||||
|
||||
static int qlogicpti_return_status(struct Status_Entry *sts, int id)
|
||||
{
|
||||
int host_status = DID_ERROR;
|
||||
|
|
|
|||
|
|
@ -634,12 +634,13 @@ void scsi_log_completion(struct scsi_cmnd *cmd, int disposition)
|
|||
* Description: a serial number identifies a request for error recovery
|
||||
* and debugging purposes. Protected by the Host_Lock of host.
|
||||
*/
|
||||
static inline void scsi_cmd_get_serial(struct Scsi_Host *host, struct scsi_cmnd *cmd)
|
||||
void scsi_cmd_get_serial(struct Scsi_Host *host, struct scsi_cmnd *cmd)
|
||||
{
|
||||
cmd->serial_number = host->cmd_serial_number++;
|
||||
if (cmd->serial_number == 0)
|
||||
cmd->serial_number = host->cmd_serial_number++;
|
||||
}
|
||||
EXPORT_SYMBOL(scsi_cmd_get_serial);
|
||||
|
||||
/**
|
||||
* scsi_dispatch_command - Dispatch a command to the low-level driver.
|
||||
|
|
@ -651,7 +652,6 @@ static inline void scsi_cmd_get_serial(struct Scsi_Host *host, struct scsi_cmnd
|
|||
int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
unsigned long flags = 0;
|
||||
unsigned long timeout;
|
||||
int rtn = 0;
|
||||
|
||||
|
|
@ -737,23 +737,15 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
|
|||
goto out;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(host->host_lock, flags);
|
||||
/*
|
||||
* AK: unlikely race here: for some reason the timer could
|
||||
* expire before the serial number is set up below.
|
||||
*
|
||||
* TODO: kill serial or move to blk layer
|
||||
*/
|
||||
scsi_cmd_get_serial(host, cmd);
|
||||
|
||||
if (unlikely(host->shost_state == SHOST_DEL)) {
|
||||
cmd->result = (DID_NO_CONNECT << 16);
|
||||
scsi_done(cmd);
|
||||
} else {
|
||||
trace_scsi_dispatch_cmd_start(cmd);
|
||||
rtn = host->hostt->queuecommand(cmd, scsi_done);
|
||||
cmd->scsi_done = scsi_done;
|
||||
rtn = host->hostt->queuecommand(host, cmd);
|
||||
}
|
||||
spin_unlock_irqrestore(host->host_lock, flags);
|
||||
|
||||
if (rtn) {
|
||||
trace_scsi_dispatch_cmd_error(cmd, rtn);
|
||||
if (rtn != SCSI_MLQUEUE_DEVICE_BUSY &&
|
||||
|
|
|
|||
|
|
@ -3538,7 +3538,7 @@ static void sdebug_remove_adapter(void)
|
|||
}
|
||||
|
||||
static
|
||||
int scsi_debug_queuecommand(struct scsi_cmnd *SCpnt, done_funct_t done)
|
||||
int scsi_debug_queuecommand_lck(struct scsi_cmnd *SCpnt, done_funct_t done)
|
||||
{
|
||||
unsigned char *cmd = (unsigned char *) SCpnt->cmnd;
|
||||
int len, k;
|
||||
|
|
@ -3884,6 +3884,8 @@ write:
|
|||
(delay_override ? 0 : scsi_debug_delay));
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(scsi_debug_queuecommand)
|
||||
|
||||
static struct scsi_host_template sdebug_driver_template = {
|
||||
.proc_info = scsi_debug_proc_info,
|
||||
.proc_name = sdebug_proc_name,
|
||||
|
|
|
|||
|
|
@ -615,7 +615,7 @@ static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd)
|
|||
return rtn;
|
||||
}
|
||||
|
||||
static int __scsi_try_to_abort_cmd(struct scsi_cmnd *scmd)
|
||||
static int scsi_try_to_abort_cmd(struct scsi_cmnd *scmd)
|
||||
{
|
||||
if (!scmd->device->host->hostt->eh_abort_handler)
|
||||
return FAILED;
|
||||
|
|
@ -623,31 +623,9 @@ static int __scsi_try_to_abort_cmd(struct scsi_cmnd *scmd)
|
|||
return scmd->device->host->hostt->eh_abort_handler(scmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* scsi_try_to_abort_cmd - Ask host to abort a running command.
|
||||
* @scmd: SCSI cmd to abort from Lower Level.
|
||||
*
|
||||
* Notes:
|
||||
* This function will not return until the user's completion function
|
||||
* has been called. there is no timeout on this operation. if the
|
||||
* author of the low-level driver wishes this operation to be timed,
|
||||
* they can provide this facility themselves. helper functions in
|
||||
* scsi_error.c can be supplied to make this easier to do.
|
||||
*/
|
||||
static int scsi_try_to_abort_cmd(struct scsi_cmnd *scmd)
|
||||
{
|
||||
/*
|
||||
* scsi_done was called just after the command timed out and before
|
||||
* we had a chance to process it. (db)
|
||||
*/
|
||||
if (scmd->serial_number == 0)
|
||||
return SUCCESS;
|
||||
return __scsi_try_to_abort_cmd(scmd);
|
||||
}
|
||||
|
||||
static void scsi_abort_eh_cmnd(struct scsi_cmnd *scmd)
|
||||
{
|
||||
if (__scsi_try_to_abort_cmd(scmd) != SUCCESS)
|
||||
if (scsi_try_to_abort_cmd(scmd) != SUCCESS)
|
||||
if (scsi_try_bus_device_reset(scmd) != SUCCESS)
|
||||
if (scsi_try_target_reset(scmd) != SUCCESS)
|
||||
if (scsi_try_bus_reset(scmd) != SUCCESS)
|
||||
|
|
@ -773,17 +751,15 @@ static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd,
|
|||
struct Scsi_Host *shost = sdev->host;
|
||||
DECLARE_COMPLETION_ONSTACK(done);
|
||||
unsigned long timeleft;
|
||||
unsigned long flags;
|
||||
struct scsi_eh_save ses;
|
||||
int rtn;
|
||||
|
||||
scsi_eh_prep_cmnd(scmd, &ses, cmnd, cmnd_size, sense_bytes);
|
||||
shost->eh_action = &done;
|
||||
|
||||
spin_lock_irqsave(shost->host_lock, flags);
|
||||
scsi_log_send(scmd);
|
||||
shost->hostt->queuecommand(scmd, scsi_eh_done);
|
||||
spin_unlock_irqrestore(shost->host_lock, flags);
|
||||
scmd->scsi_done = scsi_eh_done;
|
||||
shost->hostt->queuecommand(shost, scmd);
|
||||
|
||||
timeleft = wait_for_completion_timeout(&done, timeout);
|
||||
|
||||
|
|
|
|||
|
|
@ -1403,11 +1403,6 @@ static void scsi_softirq_done(struct request *rq)
|
|||
|
||||
INIT_LIST_HEAD(&cmd->eh_entry);
|
||||
|
||||
/*
|
||||
* Set the serial numbers back to zero
|
||||
*/
|
||||
cmd->serial_number = 0;
|
||||
|
||||
atomic_inc(&cmd->device->iodone_cnt);
|
||||
if (cmd->result)
|
||||
atomic_inc(&cmd->device->ioerr_cnt);
|
||||
|
|
@ -1642,9 +1637,8 @@ struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
|
|||
|
||||
blk_queue_max_segment_size(q, dma_get_max_seg_size(dev));
|
||||
|
||||
/* New queue, no concurrency on queue_flags */
|
||||
if (!shost->use_clustering)
|
||||
queue_flag_clear_unlocked(QUEUE_FLAG_CLUSTER, q);
|
||||
q->limits.cluster = 0;
|
||||
|
||||
/*
|
||||
* set a reasonable default alignment on word boundaries: the
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@
|
|||
#include <linux/blkdev.h>
|
||||
#include <linux/blkpg.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/string_helpers.h>
|
||||
#include <linux/async.h>
|
||||
|
|
|
|||
|
|
@ -572,7 +572,7 @@ stex_slave_destroy(struct scsi_device *sdev)
|
|||
}
|
||||
|
||||
static int
|
||||
stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
|
||||
stex_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct st_hba *hba;
|
||||
struct Scsi_Host *host;
|
||||
|
|
@ -698,6 +698,8 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(stex_queuecommand)
|
||||
|
||||
static void stex_scsi_done(struct st_ccb *ccb)
|
||||
{
|
||||
struct scsi_cmnd *cmd = ccb->cmd;
|
||||
|
|
|
|||
|
|
@ -908,7 +908,7 @@ static int NCR5380_init (struct Scsi_Host *instance, int flags)
|
|||
*/
|
||||
|
||||
/* Only make static if a wrapper function is used */
|
||||
static int NCR5380_queue_command(struct scsi_cmnd *cmd,
|
||||
static int NCR5380_queue_command_lck(struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
SETUP_HOSTDATA(cmd->device->host);
|
||||
|
|
@ -1019,6 +1019,8 @@ static int NCR5380_queue_command(struct scsi_cmnd *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static DEF_SCSI_QCMD(NCR5380_queue_command)
|
||||
|
||||
/*
|
||||
* Function : NCR5380_main (void)
|
||||
*
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue