scsi: Convert SCSI drivers to .sdev_configure()

The only difference between the .sdev_configure() and .slave_configure()
methods is that the former accepts an additional 'limits' argument.
Convert all SCSI drivers that define a .slave_configure() method to
.sdev_configure(). This patch prepares for removing the
.slave_configure() method. No functionality has been changed.

Acked-by: Geoff Levand <geoff@infradead.org> # for ps3rom
Acked-by: Khalid Aziz <khalid@gonehiking.org> # for the BusLogic driver
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20241022180839.2712439-4-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Bart Van Assche 2024-10-22 11:07:55 -07:00 committed by Martin K. Petersen
parent 47c2e30afc
commit 49515b7fe5
45 changed files with 162 additions and 121 deletions

View File

@ -2844,7 +2844,8 @@ static int srp_target_alloc(struct scsi_target *starget)
return 0;
}
static int srp_slave_configure(struct scsi_device *sdev)
static int srp_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct Scsi_Host *shost = sdev->host;
struct srp_target_port *target = host_to_target(shost);
@ -3067,7 +3068,7 @@ static const struct scsi_host_template srp_template = {
.name = "InfiniBand SRP initiator",
.proc_name = DRV_NAME,
.target_alloc = srp_target_alloc,
.slave_configure = srp_slave_configure,
.sdev_configure = srp_sdev_configure,
.info = srp_target_info,
.init_cmd_priv = srp_init_cmd_priv,
.exit_cmd_priv = srp_exit_cmd_priv,

View File

@ -114,7 +114,7 @@ static const struct scsi_host_template mptfc_driver_template = {
.queuecommand = mptfc_qcmd,
.target_alloc = mptfc_target_alloc,
.sdev_init = mptfc_sdev_init,
.slave_configure = mptscsih_slave_configure,
.sdev_configure = mptscsih_sdev_configure,
.target_destroy = mptfc_target_destroy,
.sdev_destroy = mptscsih_sdev_destroy,
.change_queue_depth = mptscsih_change_queue_depth,

View File

@ -1710,7 +1710,7 @@ mptsas_firmware_event_work(struct work_struct *work)
static int
mptsas_slave_configure(struct scsi_device *sdev)
mptsas_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
struct Scsi_Host *host = sdev->host;
MPT_SCSI_HOST *hd = shost_priv(host);
@ -1736,7 +1736,7 @@ mptsas_slave_configure(struct scsi_device *sdev)
mptsas_add_device_component_starget(ioc, scsi_target(sdev));
out:
return mptscsih_slave_configure(sdev);
return mptscsih_sdev_configure(sdev, lim);
}
static int
@ -2006,7 +2006,7 @@ static const struct scsi_host_template mptsas_driver_template = {
.queuecommand = mptsas_qcmd,
.target_alloc = mptsas_target_alloc,
.sdev_init = mptsas_sdev_init,
.slave_configure = mptsas_slave_configure,
.sdev_configure = mptsas_sdev_configure,
.target_destroy = mptsas_target_destroy,
.sdev_destroy = mptscsih_sdev_destroy,
.change_queue_depth = mptscsih_change_queue_depth,

View File

@ -2399,7 +2399,7 @@ mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth)
* Return non-zero if fails.
*/
int
mptscsih_slave_configure(struct scsi_device *sdev)
mptscsih_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
struct Scsi_Host *sh = sdev->host;
VirtTarget *vtarget;
@ -3303,7 +3303,7 @@ EXPORT_SYMBOL(mptscsih_show_info);
EXPORT_SYMBOL(mptscsih_info);
EXPORT_SYMBOL(mptscsih_qcmd);
EXPORT_SYMBOL(mptscsih_sdev_destroy);
EXPORT_SYMBOL(mptscsih_slave_configure);
EXPORT_SYMBOL(mptscsih_sdev_configure);
EXPORT_SYMBOL(mptscsih_abort);
EXPORT_SYMBOL(mptscsih_dev_reset);
EXPORT_SYMBOL(mptscsih_target_reset);

View File

@ -117,7 +117,8 @@ extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt);
extern int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel,
u8 id, u64 lun, int ctx2abort, ulong timeout);
extern void mptscsih_sdev_destroy(struct scsi_device *device);
extern int mptscsih_slave_configure(struct scsi_device *device);
extern int mptscsih_sdev_configure(struct scsi_device *device,
struct queue_limits *lim);
extern int mptscsih_abort(struct scsi_cmnd * SCpnt);
extern int mptscsih_dev_reset(struct scsi_cmnd * SCpnt);
extern int mptscsih_target_reset(struct scsi_cmnd * SCpnt);

View File

@ -746,7 +746,8 @@ static int mptspi_sdev_init(struct scsi_device *sdev)
return 0;
}
static int mptspi_slave_configure(struct scsi_device *sdev)
static int mptspi_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct _MPT_SCSI_HOST *hd = shost_priv(sdev->host);
VirtTarget *vtarget = scsi_target(sdev)->hostdata;
@ -754,7 +755,7 @@ static int mptspi_slave_configure(struct scsi_device *sdev)
mptspi_initTarget(hd, vtarget, sdev);
ret = mptscsih_slave_configure(sdev);
ret = mptscsih_sdev_configure(sdev, lim);
if (ret)
return ret;
@ -829,7 +830,7 @@ static const struct scsi_host_template mptspi_driver_template = {
.queuecommand = mptspi_qcmd,
.target_alloc = mptspi_target_alloc,
.sdev_init = mptspi_sdev_init,
.slave_configure = mptspi_slave_configure,
.sdev_configure = mptspi_sdev_configure,
.target_destroy = mptspi_target_destroy,
.sdev_destroy = mptspi_sdev_destroy,
.change_queue_depth = mptscsih_change_queue_depth,

View File

@ -49,7 +49,8 @@ static void zfcp_scsi_sdev_destroy(struct scsi_device *sdev)
put_device(&zfcp_sdev->port->dev);
}
static int zfcp_scsi_slave_configure(struct scsi_device *sdp)
static int zfcp_scsi_sdev_configure(struct scsi_device *sdp,
struct queue_limits *lim)
{
if (sdp->tagged_supported)
scsi_change_queue_depth(sdp, default_depth);
@ -428,7 +429,7 @@ static const struct scsi_host_template zfcp_scsi_host_template = {
.eh_target_reset_handler = zfcp_scsi_eh_target_reset_handler,
.eh_host_reset_handler = zfcp_scsi_eh_host_reset_handler,
.sdev_init = zfcp_scsi_sdev_init,
.slave_configure = zfcp_scsi_slave_configure,
.sdev_configure = zfcp_scsi_sdev_configure,
.sdev_destroy = zfcp_scsi_sdev_destroy,
.change_queue_depth = scsi_change_queue_depth,
.host_reset = zfcp_scsi_sysfs_host_reset,

View File

@ -1968,13 +1968,14 @@ static char *twa_string_lookup(twa_message_type *table, unsigned int code)
} /* End twa_string_lookup() */
/* This function gets called when a disk is coming on-line */
static int twa_slave_configure(struct scsi_device *sdev)
static int twa_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
/* Force 60 second timeout */
blk_queue_rq_timeout(sdev->request_queue, 60 * HZ);
return 0;
} /* End twa_slave_configure() */
} /* End twa_sdev_configure() */
static const struct scsi_host_template driver_template = {
.module = THIS_MODULE,
@ -1984,7 +1985,7 @@ static const struct scsi_host_template driver_template = {
.bios_param = twa_scsi_biosparam,
.change_queue_depth = scsi_change_queue_depth,
.can_queue = TW_Q_LENGTH-2,
.slave_configure = twa_slave_configure,
.sdev_configure = twa_sdev_configure,
.this_id = -1,
.sg_tablesize = TW_APACHE_MAX_SGL_LENGTH,
.max_sectors = TW_MAX_SECTORS,

View File

@ -1523,13 +1523,14 @@ static void twl_shutdown(struct pci_dev *pdev)
} /* End twl_shutdown() */
/* This function configures unit settings when a unit is coming on-line */
static int twl_slave_configure(struct scsi_device *sdev)
static int twl_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
/* Force 60 second timeout */
blk_queue_rq_timeout(sdev->request_queue, 60 * HZ);
return 0;
} /* End twl_slave_configure() */
} /* End twl_sdev_configure() */
static const struct scsi_host_template driver_template = {
.module = THIS_MODULE,
@ -1539,7 +1540,7 @@ static const struct scsi_host_template driver_template = {
.bios_param = twl_scsi_biosparam,
.change_queue_depth = scsi_change_queue_depth,
.can_queue = TW_Q_LENGTH-2,
.slave_configure = twl_slave_configure,
.sdev_configure = twl_sdev_configure,
.this_id = -1,
.sg_tablesize = TW_LIBERATOR_MAX_SGL_LENGTH,
.max_sectors = TW_MAX_SECTORS,

View File

@ -172,7 +172,7 @@
Initialize queues correctly when loading with no valid units.
1.02.00.034 - Fix tw_decode_bits() to handle multiple errors.
Add support for user configurable cmd_per_lun.
Add support for sht->slave_configure().
Add support for sht->sdev_configure().
1.02.00.035 - Improve tw_allocate_memory() memory allocation.
Fix tw_chrdev_ioctl() to sleep correctly.
1.02.00.036 - Increase character ioctl timeout to 60 seconds.
@ -2221,13 +2221,13 @@ static void tw_shutdown(struct pci_dev *pdev)
} /* End tw_shutdown() */
/* This function gets called when a disk is coming online */
static int tw_slave_configure(struct scsi_device *sdev)
static int tw_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
/* Force 60 second timeout */
blk_queue_rq_timeout(sdev->request_queue, 60 * HZ);
return 0;
} /* End tw_slave_configure() */
} /* End tw_sdev_configure() */
static const struct scsi_host_template driver_template = {
.module = THIS_MODULE,
@ -2237,7 +2237,7 @@ static const struct scsi_host_template driver_template = {
.bios_param = tw_scsi_biosparam,
.change_queue_depth = scsi_change_queue_depth,
.can_queue = TW_Q_LENGTH-2,
.slave_configure = tw_slave_configure,
.sdev_configure = tw_sdev_configure,
.this_id = -1,
.sg_tablesize = TW_MAX_SGL_LENGTH,
.max_sectors = TW_MAX_SECTORS,

View File

@ -159,7 +159,8 @@ STATIC int NCR_700_host_reset(struct scsi_cmnd * SCpnt);
STATIC void NCR_700_chip_setup(struct Scsi_Host *host);
STATIC void NCR_700_chip_reset(struct Scsi_Host *host);
STATIC int NCR_700_sdev_init(struct scsi_device *SDpnt);
STATIC int NCR_700_slave_configure(struct scsi_device *SDpnt);
STATIC int NCR_700_sdev_configure(struct scsi_device *SDpnt,
struct queue_limits *lim);
STATIC void NCR_700_sdev_destroy(struct scsi_device *SDpnt);
static int NCR_700_change_queue_depth(struct scsi_device *SDpnt, int depth);
@ -330,7 +331,7 @@ NCR_700_detect(struct scsi_host_template *tpnt,
tpnt->can_queue = NCR_700_COMMAND_SLOTS_PER_HOST;
tpnt->sg_tablesize = NCR_700_SG_SEGMENTS;
tpnt->cmd_per_lun = NCR_700_CMD_PER_LUN;
tpnt->slave_configure = NCR_700_slave_configure;
tpnt->sdev_configure = NCR_700_sdev_configure;
tpnt->sdev_destroy = NCR_700_sdev_destroy;
tpnt->sdev_init = NCR_700_sdev_init;
tpnt->change_queue_depth = NCR_700_change_queue_depth;
@ -2029,7 +2030,7 @@ NCR_700_sdev_init(struct scsi_device *SDp)
}
STATIC int
NCR_700_slave_configure(struct scsi_device *SDp)
NCR_700_sdev_configure(struct scsi_device *SDp, struct queue_limits *lim)
{
struct NCR_700_Host_Parameters *hostdata =
(struct NCR_700_Host_Parameters *)SDp->host->hostdata[0];

View File

@ -2153,14 +2153,15 @@ static void __init blogic_inithoststruct(struct blogic_adapter *adapter,
}
/*
blogic_slaveconfig will actually set the queue depth on individual
blogic_sdev_configure will actually set the queue depth on individual
scsi devices as they are permanently added to the device chain. We
shamelessly rip off the SelectQueueDepths code to make this work mostly
like it used to. Since we don't get called once at the end of the scan
but instead get called for each device, we have to do things a bit
differently.
*/
static int blogic_slaveconfig(struct scsi_device *dev)
static int blogic_sdev_configure(struct scsi_device *dev,
struct queue_limits *lim)
{
struct blogic_adapter *adapter =
(struct blogic_adapter *) dev->host->hostdata;
@ -3672,7 +3673,7 @@ static const struct scsi_host_template blogic_template = {
.name = "BusLogic",
.info = blogic_drvr_info,
.queuecommand = blogic_qcmd,
.slave_configure = blogic_slaveconfig,
.sdev_configure = blogic_sdev_configure,
.bios_param = blogic_diskparam,
.eh_host_reset_handler = blogic_hostreset,
#if 0

View File

@ -1274,7 +1274,8 @@ static inline void blogic_incszbucket(unsigned int *cmdsz_buckets,
static const char *blogic_drvr_info(struct Scsi_Host *);
static int blogic_qcmd(struct Scsi_Host *h, struct scsi_cmnd *);
static int blogic_diskparam(struct scsi_device *, struct block_device *, sector_t, int *);
static int blogic_slaveconfig(struct scsi_device *);
static int blogic_sdev_configure(struct scsi_device *,
struct queue_limits *lim);
static void blogic_qcompleted_ccb(struct blogic_ccb *);
static irqreturn_t blogic_inthandler(int, void *);
static int blogic_resetadapter(struct blogic_adapter *, bool hard_reset);

View File

@ -377,15 +377,17 @@ static int aac_biosparm(struct scsi_device *sdev, struct block_device *bdev,
}
/**
* aac_slave_configure - compute queue depths
* aac_sdev_configure - compute queue depths
* @sdev: SCSI device we are considering
* @lim: Request queue limits
*
* Selects queue depths for each target device based on the host adapter's
* total capacity and the queue depth supported by the target device.
* A queue depth of one automatically disables tagged queueing.
*/
static int aac_slave_configure(struct scsi_device *sdev)
static int aac_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
int chn, tid;
@ -1487,7 +1489,7 @@ static const struct scsi_host_template aac_driver_template = {
.queuecommand = aac_queuecommand,
.bios_param = aac_biosparm,
.shost_groups = aac_host_groups,
.slave_configure = aac_slave_configure,
.sdev_configure = aac_sdev_configure,
.change_queue_depth = aac_change_queue_depth,
.sdev_groups = aac_dev_groups,
.eh_abort_handler = aac_eh_abort,

View File

@ -4496,7 +4496,7 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)
/*
* Microcode operating variables for WDTR, SDTR, and command tag
* queuing will be set in slave_configure() based on what a
* queuing will be set in sdev_configure() based on what a
* device reports it is capable of in Inquiry byte 7.
*
* If SCSI Bus Resets have been disabled, then directly set
@ -5013,7 +5013,7 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)
/*
* Microcode operating variables for WDTR, SDTR, and command tag
* queuing will be set in slave_configure() based on what a
* queuing will be set in sdev_configure() based on what a
* device reports it is capable of in Inquiry byte 7.
*
* If SCSI Bus Resets have been disabled, then directly set
@ -5508,7 +5508,7 @@ static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc)
/*
* Microcode operating variables for WDTR, SDTR, and command tag
* queuing will be set in slave_configure() based on what a
* queuing will be set in sdev_configure() based on what a
* device reports it is capable of in Inquiry byte 7.
*
* If SCSI Bus Resets have been disabled, then directly set
@ -7219,7 +7219,7 @@ static void AscAsyncFix(ASC_DVC_VAR *asc_dvc, struct scsi_device *sdev)
}
static void
advansys_narrow_slave_configure(struct scsi_device *sdev, ASC_DVC_VAR *asc_dvc)
advansys_narrow_sdev_configure(struct scsi_device *sdev, ASC_DVC_VAR *asc_dvc)
{
ASC_SCSI_BIT_ID_TYPE tid_bit = 1 << sdev->id;
ASC_SCSI_BIT_ID_TYPE orig_use_tagged_qng = asc_dvc->use_tagged_qng;
@ -7345,7 +7345,7 @@ static void advansys_wide_enable_ppr(ADV_DVC_VAR *adv_dvc,
}
static void
advansys_wide_slave_configure(struct scsi_device *sdev, ADV_DVC_VAR *adv_dvc)
advansys_wide_sdev_configure(struct scsi_device *sdev, ADV_DVC_VAR *adv_dvc)
{
AdvPortAddr iop_base = adv_dvc->iop_base;
unsigned short tidmask = 1 << sdev->id;
@ -7391,16 +7391,17 @@ advansys_wide_slave_configure(struct scsi_device *sdev, ADV_DVC_VAR *adv_dvc)
* Set the number of commands to queue per device for the
* specified host adapter.
*/
static int advansys_slave_configure(struct scsi_device *sdev)
static int advansys_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct asc_board *boardp = shost_priv(sdev->host);
if (ASC_NARROW_BOARD(boardp))
advansys_narrow_slave_configure(sdev,
&boardp->dvc_var.asc_dvc_var);
advansys_narrow_sdev_configure(sdev,
&boardp->dvc_var.asc_dvc_var);
else
advansys_wide_slave_configure(sdev,
&boardp->dvc_var.adv_dvc_var);
advansys_wide_sdev_configure(sdev,
&boardp->dvc_var.adv_dvc_var);
return 0;
}
@ -10612,7 +10613,7 @@ static const struct scsi_host_template advansys_template = {
.queuecommand = advansys_queuecommand,
.eh_host_reset_handler = advansys_reset,
.bios_param = advansys_biosparam,
.slave_configure = advansys_slave_configure,
.sdev_configure = advansys_sdev_configure,
.cmd_size = sizeof(struct advansys_cmd),
};

View File

@ -701,7 +701,7 @@ ahd_linux_sdev_init(struct scsi_device *sdev)
}
static int
ahd_linux_slave_configure(struct scsi_device *sdev)
ahd_linux_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
if (bootverbose)
sdev_printk(KERN_INFO, sdev, "Slave Configure\n");
@ -907,7 +907,7 @@ struct scsi_host_template aic79xx_driver_template = {
.max_sectors = 8192,
.cmd_per_lun = 2,
.sdev_init = ahd_linux_sdev_init,
.slave_configure = ahd_linux_slave_configure,
.sdev_configure = ahd_linux_sdev_configure,
.target_alloc = ahd_linux_target_alloc,
.target_destroy = ahd_linux_target_destroy,
};

View File

@ -664,7 +664,7 @@ ahc_linux_sdev_init(struct scsi_device *sdev)
}
static int
ahc_linux_slave_configure(struct scsi_device *sdev)
ahc_linux_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
if (bootverbose)
sdev_printk(KERN_INFO, sdev, "Slave Configure\n");
@ -792,7 +792,7 @@ struct scsi_host_template aic7xxx_driver_template = {
.max_sectors = 8192,
.cmd_per_lun = 2,
.sdev_init = ahc_linux_sdev_init,
.slave_configure = ahc_linux_slave_configure,
.sdev_configure = ahc_linux_sdev_configure,
.target_alloc = ahc_linux_target_alloc,
.target_destroy = ahc_linux_target_destroy,
};

View File

@ -143,7 +143,8 @@ static irqreturn_t arcmsr_interrupt(struct AdapterControlBlock *acb);
static void arcmsr_free_irq(struct pci_dev *, struct AdapterControlBlock *);
static void arcmsr_wait_firmware_ready(struct AdapterControlBlock *acb);
static void arcmsr_set_iop_datetime(struct timer_list *);
static int arcmsr_slave_config(struct scsi_device *sdev);
static int arcmsr_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim);
static int arcmsr_adjust_disk_queue_depth(struct scsi_device *sdev, int queue_depth)
{
if (queue_depth > ARCMSR_MAX_CMD_PERLUN)
@ -160,7 +161,7 @@ static const struct scsi_host_template arcmsr_scsi_host_template = {
.eh_abort_handler = arcmsr_abort,
.eh_bus_reset_handler = arcmsr_bus_reset,
.bios_param = arcmsr_bios_param,
.slave_configure = arcmsr_slave_config,
.sdev_configure = arcmsr_sdev_configure,
.change_queue_depth = arcmsr_adjust_disk_queue_depth,
.can_queue = ARCMSR_DEFAULT_OUTSTANDING_CMD,
.this_id = ARCMSR_SCSI_INITIATOR_ID,
@ -3344,7 +3345,8 @@ static int arcmsr_queue_command_lck(struct scsi_cmnd *cmd)
static DEF_SCSI_QCMD(arcmsr_queue_command)
static int arcmsr_slave_config(struct scsi_device *sdev)
static int arcmsr_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
unsigned int dev_timeout;

View File

@ -783,7 +783,7 @@ bfad_thread_workq(struct bfad_s *bfad)
* Return non-zero if fails.
*/
static int
bfad_im_slave_configure(struct scsi_device *sdev)
bfad_im_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
scsi_change_queue_depth(sdev, bfa_lun_queue_depth);
return 0;
@ -801,7 +801,7 @@ struct scsi_host_template bfad_im_scsi_host_template = {
.eh_target_reset_handler = bfad_im_reset_target_handler,
.sdev_init = bfad_im_sdev_init,
.slave_configure = bfad_im_slave_configure,
.sdev_configure = bfad_im_sdev_configure,
.sdev_destroy = bfad_im_sdev_destroy,
.this_id = -1,
@ -824,7 +824,7 @@ struct scsi_host_template bfad_im_vport_template = {
.eh_target_reset_handler = bfad_im_reset_target_handler,
.sdev_init = bfad_im_sdev_init,
.slave_configure = bfad_im_slave_configure,
.sdev_configure = bfad_im_sdev_configure,
.sdev_destroy = bfad_im_sdev_destroy,
.this_id = -1,

View File

@ -2652,7 +2652,8 @@ static int bnx2fc_cpu_offline(unsigned int cpu)
return 0;
}
static int bnx2fc_slave_configure(struct scsi_device *sdev)
static int bnx2fc_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
if (!bnx2fc_queue_depth)
return 0;
@ -2959,7 +2960,7 @@ static struct scsi_host_template bnx2fc_shost_template = {
.dma_boundary = 0x7fff,
.max_sectors = 0x3fbf,
.track_queue_depth = 1,
.slave_configure = bnx2fc_slave_configure,
.sdev_configure = bnx2fc_sdev_configure,
.shost_groups = bnx2fc_host_groups,
.cmd_size = sizeof(struct bnx2fc_priv),
};

View File

@ -2237,7 +2237,7 @@ csio_sdev_init(struct scsi_device *sdev)
}
static int
csio_slave_configure(struct scsi_device *sdev)
csio_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
scsi_change_queue_depth(sdev, csio_lun_qdepth);
return 0;
@ -2277,7 +2277,7 @@ struct scsi_host_template csio_fcoe_shost_template = {
.eh_abort_handler = csio_eh_abort_handler,
.eh_device_reset_handler = csio_eh_lun_reset_handler,
.sdev_init = csio_sdev_init,
.slave_configure = csio_slave_configure,
.sdev_configure = csio_sdev_configure,
.sdev_destroy = csio_sdev_destroy,
.scan_finished = csio_scan_finished,
.this_id = -1,
@ -2296,7 +2296,7 @@ struct scsi_host_template csio_fcoe_shost_vport_template = {
.eh_abort_handler = csio_eh_abort_handler,
.eh_device_reset_handler = csio_eh_lun_reset_handler,
.sdev_init = csio_sdev_init,
.slave_configure = csio_slave_configure,
.sdev_configure = csio_sdev_configure,
.sdev_destroy = csio_sdev_destroy,
.scan_finished = csio_scan_finished,
.this_id = -1,

View File

@ -2261,7 +2261,7 @@ static void esp_init_swstate(struct esp *esp)
INIT_LIST_HEAD(&esp->active_cmds);
INIT_LIST_HEAD(&esp->esp_cmd_pool);
/* Start with a clear state, domain validation (via ->slave_configure,
/* Start with a clear state, domain validation (via ->sdev_configure,
* spi_dv_device()) will attempt to enable SYNC, WIDE, and tagged
* commands.
*/
@ -2463,7 +2463,7 @@ static int esp_sdev_init(struct scsi_device *dev)
return 0;
}
static int esp_slave_configure(struct scsi_device *dev)
static int esp_sdev_configure(struct scsi_device *dev, struct queue_limits *lim)
{
struct esp *esp = shost_priv(dev->host);
struct esp_target_data *tp = &esp->target[dev->id];
@ -2668,7 +2668,7 @@ const struct scsi_host_template scsi_esp_template = {
.target_alloc = esp_target_alloc,
.target_destroy = esp_target_destroy,
.sdev_init = esp_sdev_init,
.slave_configure = esp_slave_configure,
.sdev_configure = esp_sdev_configure,
.sdev_destroy = esp_sdev_destroy,
.eh_abort_handler = esp_eh_abort_handler,
.eh_bus_reset_handler = esp_eh_bus_reset_handler,

View File

@ -284,7 +284,8 @@ static int hpsa_change_queue_depth(struct scsi_device *sdev, int qdepth);
static int hpsa_eh_device_reset_handler(struct scsi_cmnd *scsicmd);
static int hpsa_sdev_init(struct scsi_device *sdev);
static int hpsa_slave_configure(struct scsi_device *sdev);
static int hpsa_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim);
static void hpsa_sdev_destroy(struct scsi_device *sdev);
static void hpsa_update_scsi_devices(struct ctlr_info *h);
@ -979,7 +980,7 @@ static const struct scsi_host_template hpsa_driver_template = {
.eh_device_reset_handler = hpsa_eh_device_reset_handler,
.ioctl = hpsa_ioctl,
.sdev_init = hpsa_sdev_init,
.slave_configure = hpsa_slave_configure,
.sdev_configure = hpsa_sdev_configure,
.sdev_destroy = hpsa_sdev_destroy,
#ifdef CONFIG_COMPAT
.compat_ioctl = hpsa_compat_ioctl,
@ -2142,7 +2143,8 @@ static int hpsa_sdev_init(struct scsi_device *sdev)
/* configure scsi device based on internal per-device structure */
#define CTLR_TIMEOUT (120 * HZ)
static int hpsa_slave_configure(struct scsi_device *sdev)
static int hpsa_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct hpsa_scsi_dev_t *sd;
int queue_depth;

View File

@ -3441,8 +3441,9 @@ static int ibmvfc_target_alloc(struct scsi_target *starget)
}
/**
* ibmvfc_slave_configure - Configure the device
* ibmvfc_sdev_configure - Configure the device
* @sdev: struct scsi_device device to configure
* @lim: Request queue limits
*
* Enable allow_restart for a device if it is a disk. Adjust the
* queue_depth here also.
@ -3450,7 +3451,8 @@ static int ibmvfc_target_alloc(struct scsi_target *starget)
* Returns:
* 0
**/
static int ibmvfc_slave_configure(struct scsi_device *sdev)
static int ibmvfc_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct Scsi_Host *shost = sdev->host;
unsigned long flags = 0;
@ -3697,7 +3699,7 @@ static const struct scsi_host_template driver_template = {
.eh_target_reset_handler = ibmvfc_eh_target_reset_handler,
.eh_host_reset_handler = ibmvfc_eh_host_reset_handler,
.sdev_init = ibmvfc_sdev_init,
.slave_configure = ibmvfc_slave_configure,
.sdev_configure = ibmvfc_sdev_configure,
.target_alloc = ibmvfc_target_alloc,
.scan_finished = ibmvfc_scan_finished,
.change_queue_depth = ibmvfc_change_queue_depth,

View File

@ -1860,14 +1860,16 @@ static void ibmvscsi_handle_crq(struct viosrp_crq *crq,
}
/**
* ibmvscsi_slave_configure: Set the "allow_restart" flag for each disk.
* ibmvscsi_sdev_configure: Set the "allow_restart" flag for each disk.
* @sdev: struct scsi_device device to configure
* @lim: Request queue limits
*
* Enable allow_restart for a device if it is a disk. Adjust the
* queue_depth here also as is required by the documentation for
* struct scsi_host_template.
*/
static int ibmvscsi_slave_configure(struct scsi_device *sdev)
static int ibmvscsi_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct Scsi_Host *shost = sdev->host;
unsigned long lock_flags = 0;
@ -2091,7 +2093,7 @@ static struct scsi_host_template driver_template = {
.eh_abort_handler = ibmvscsi_eh_abort_handler,
.eh_device_reset_handler = ibmvscsi_eh_device_reset_handler,
.eh_host_reset_handler = ibmvscsi_eh_host_reset_handler,
.slave_configure = ibmvscsi_slave_configure,
.sdev_configure = ibmvscsi_sdev_configure,
.change_queue_depth = ibmvscsi_change_queue_depth,
.host_reset = ibmvscsi_host_reset,
.cmd_per_lun = IBMVSCSI_CMDS_PER_LUN_DEFAULT,

View File

@ -364,7 +364,7 @@ static struct scsi_host_template ips_driver_template = {
.proc_name = "ips",
.show_info = ips_show_info,
.write_info = ips_write_info,
.slave_configure = ips_slave_configure,
.sdev_configure = ips_sdev_configure,
.bios_param = ips_biosparam,
.this_id = -1,
.sg_tablesize = IPS_MAX_SG,
@ -1166,7 +1166,7 @@ static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,
/****************************************************************************/
/* */
/* Routine Name: ips_slave_configure */
/* Routine Name: ips_sdev_configure */
/* */
/* Routine Description: */
/* */
@ -1174,7 +1174,7 @@ static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,
/* */
/****************************************************************************/
static int
ips_slave_configure(struct scsi_device * SDptr)
ips_sdev_configure(struct scsi_device *SDptr, struct queue_limits *lim)
{
ips_ha_t *ha;
int min;

View File

@ -400,7 +400,8 @@
*/
static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,
sector_t capacity, int geom[]);
static int ips_slave_configure(struct scsi_device *SDptr);
static int ips_sdev_configure(struct scsi_device *SDptr,
struct queue_limits *lim);
/*
* Raid Command Formats

View File

@ -6342,8 +6342,9 @@ lpfc_sdev_init(struct scsi_device *sdev)
}
/**
* lpfc_slave_configure - scsi_host_template slave_configure entry point
* lpfc_sdev_configure - scsi_host_template sdev_configure entry point
* @sdev: Pointer to scsi_device.
* @lim: Request queue limits.
*
* This routine configures following items
* - Tag command queuing support for @sdev if supported.
@ -6353,7 +6354,7 @@ lpfc_sdev_init(struct scsi_device *sdev)
* 0 - Success
**/
static int
lpfc_slave_configure(struct scsi_device *sdev)
lpfc_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
struct lpfc_vport *vport = (struct lpfc_vport *) sdev->host->hostdata;
struct lpfc_hba *phba = vport->phba;
@ -6737,7 +6738,13 @@ lpfc_no_command(struct Scsi_Host *shost, struct scsi_cmnd *cmnd)
}
static int
lpfc_no_sdev(struct scsi_device *sdev)
lpfc_init_no_sdev(struct scsi_device *sdev)
{
return -ENODEV;
}
static int
lpfc_config_no_sdev(struct scsi_device *sdev, struct queue_limits *lim)
{
return -ENODEV;
}
@ -6748,8 +6755,8 @@ struct scsi_host_template lpfc_template_nvme = {
.proc_name = LPFC_DRIVER_NAME,
.info = lpfc_info,
.queuecommand = lpfc_no_command,
.sdev_init = lpfc_no_sdev,
.slave_configure = lpfc_no_sdev,
.sdev_init = lpfc_init_no_sdev,
.sdev_configure = lpfc_config_no_sdev,
.scan_finished = lpfc_scan_finished,
.this_id = -1,
.sg_tablesize = 1,
@ -6773,7 +6780,7 @@ struct scsi_host_template lpfc_template = {
.eh_target_reset_handler = lpfc_target_reset_handler,
.eh_host_reset_handler = lpfc_host_reset_handler,
.sdev_init = lpfc_sdev_init,
.slave_configure = lpfc_slave_configure,
.sdev_configure = lpfc_sdev_configure,
.sdev_destroy = lpfc_sdev_destroy,
.scan_finished = lpfc_scan_finished,
.this_id = -1,
@ -6800,7 +6807,7 @@ struct scsi_host_template lpfc_vport_template = {
.eh_bus_reset_handler = NULL,
.eh_host_reset_handler = NULL,
.sdev_init = lpfc_sdev_init,
.slave_configure = lpfc_slave_configure,
.sdev_configure = lpfc_sdev_configure,
.sdev_destroy = lpfc_sdev_destroy,
.scan_finished = lpfc_scan_finished,
.this_id = -1,

View File

@ -2000,7 +2000,8 @@ static struct mvumi_instance_template mvumi_instance_9580 = {
.reset_host = mvumi_reset_host_9580,
};
static int mvumi_slave_configure(struct scsi_device *sdev)
static int mvumi_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct mvumi_hba *mhba;
unsigned char bitcount = sizeof(unsigned char) * 8;
@ -2172,7 +2173,7 @@ static const struct scsi_host_template mvumi_template = {
.module = THIS_MODULE,
.name = "Marvell Storage Controller",
.slave_configure = mvumi_slave_configure,
.sdev_configure = mvumi_sdev_configure,
.queuecommand = mvumi_queue_command,
.eh_timed_out = mvumi_timed_out,
.eh_host_reset_handler = mvumi_host_reset,

View File

@ -1715,7 +1715,8 @@ static int myrb_sdev_init(struct scsi_device *sdev)
return myrb_pdev_sdev_init(sdev);
}
static int myrb_slave_configure(struct scsi_device *sdev)
static int myrb_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct myrb_ldev_info *ldev_info;
@ -2209,7 +2210,7 @@ static const struct scsi_host_template myrb_template = {
.queuecommand = myrb_queuecommand,
.eh_host_reset_handler = myrb_host_reset,
.sdev_init = myrb_sdev_init,
.slave_configure = myrb_slave_configure,
.sdev_configure = myrb_sdev_configure,
.sdev_destroy = myrb_sdev_destroy,
.bios_param = myrb_biosparam,
.cmd_size = sizeof(struct myrb_cmdblk),

View File

@ -1882,7 +1882,8 @@ static int myrs_sdev_init(struct scsi_device *sdev)
return 0;
}
static int myrs_slave_configure(struct scsi_device *sdev)
static int myrs_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct myrs_hba *cs = shost_priv(sdev->host);
struct myrs_ldev_info *ldev_info;
@ -1922,7 +1923,7 @@ static const struct scsi_host_template myrs_template = {
.queuecommand = myrs_queuecommand,
.eh_host_reset_handler = myrs_host_reset,
.sdev_init = myrs_sdev_init,
.slave_configure = myrs_slave_configure,
.sdev_configure = myrs_sdev_configure,
.sdev_destroy = myrs_sdev_destroy,
.cmd_size = sizeof(struct myrs_cmdblk),
.shost_groups = myrs_shost_groups,

View File

@ -7796,7 +7796,8 @@ static int ncr53c8xx_sdev_init(struct scsi_device *device)
return 0;
}
static int ncr53c8xx_slave_configure(struct scsi_device *device)
static int ncr53c8xx_sdev_configure(struct scsi_device *device,
struct queue_limits *lim)
{
struct Scsi_Host *host = device->host;
struct ncb *np = ((struct host_data *) host->hostdata)->ncb;
@ -8093,7 +8094,7 @@ struct Scsi_Host * __init ncr_attach(struct scsi_host_template *tpnt,
tpnt->shost_groups = ncr53c8xx_host_groups;
tpnt->queuecommand = ncr53c8xx_queue_command;
tpnt->slave_configure = ncr53c8xx_slave_configure;
tpnt->sdev_configure = ncr53c8xx_sdev_configure;
tpnt->sdev_init = ncr53c8xx_sdev_init;
tpnt->eh_bus_reset_handler = ncr53c8xx_bus_reset;
tpnt->can_queue = SCSI_NCR_CAN_QUEUE;

View File

@ -61,7 +61,8 @@ enum lv1_atapi_in_out {
};
static int ps3rom_slave_configure(struct scsi_device *scsi_dev)
static int ps3rom_sdev_configure(struct scsi_device *scsi_dev,
struct queue_limits *lim)
{
struct ps3rom_private *priv = shost_priv(scsi_dev->host);
struct ps3_storage_device *dev = priv->dev;
@ -325,7 +326,7 @@ static irqreturn_t ps3rom_interrupt(int irq, void *data)
static const struct scsi_host_template ps3rom_host_template = {
.name = DEVICE_NAME,
.slave_configure = ps3rom_slave_configure,
.sdev_configure = ps3rom_sdev_configure,
.queuecommand = ps3rom_queuecommand,
.can_queue = 1,
.this_id = 7,

View File

@ -982,7 +982,8 @@ static int qedf_eh_host_reset(struct scsi_cmnd *sc_cmd)
return SUCCESS;
}
static int qedf_slave_configure(struct scsi_device *sdev)
static int qedf_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
if (qedf_queue_depth) {
scsi_change_queue_depth(sdev, qedf_queue_depth);
@ -1003,7 +1004,7 @@ static const struct scsi_host_template qedf_host_template = {
.eh_device_reset_handler = qedf_eh_device_reset, /* lun reset */
.eh_target_reset_handler = qedf_eh_target_reset, /* target reset */
.eh_host_reset_handler = qedf_eh_host_reset,
.slave_configure = qedf_slave_configure,
.sdev_configure = qedf_sdev_configure,
.dma_boundary = QED_HW_DMA_BOUNDARY,
.sg_tablesize = QEDF_MAX_BDS_PER_CMD,
.can_queue = FCOE_PARAMS_NUM_TASKS,

View File

@ -1159,7 +1159,7 @@ qla1280_set_target_parameters(struct scsi_qla_host *ha, int bus, int target)
/**************************************************************************
* qla1280_slave_configure
* qla1280_sdev_configure
*
* Description:
* Determines the queue depth for a given device. There are two ways
@ -1170,7 +1170,7 @@ qla1280_set_target_parameters(struct scsi_qla_host *ha, int bus, int target)
* default queue depth (dependent on the number of hardware SCBs).
**************************************************************************/
static int
qla1280_slave_configure(struct scsi_device *device)
qla1280_sdev_configure(struct scsi_device *device, struct queue_limits *lim)
{
struct scsi_qla_host *ha;
int default_depth = 3;
@ -4121,7 +4121,7 @@ static const struct scsi_host_template qla1280_driver_template = {
.proc_name = "qla1280",
.name = "Qlogic ISP 1280/12160",
.info = qla1280_info,
.slave_configure = qla1280_slave_configure,
.sdev_configure = qla1280_sdev_configure,
.queuecommand = qla1280_queuecommand,
.eh_abort_handler = qla1280_eh_abort,
.eh_device_reset_handler= qla1280_eh_device_reset,

View File

@ -1947,7 +1947,7 @@ qla2xxx_sdev_init(struct scsi_device *sdev)
}
static int
qla2xxx_slave_configure(struct scsi_device *sdev)
qla2xxx_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
scsi_qla_host_t *vha = shost_priv(sdev->host);
struct req_que *req = vha->req;
@ -8086,7 +8086,7 @@ struct scsi_host_template qla2xxx_driver_template = {
.eh_bus_reset_handler = qla2xxx_eh_bus_reset,
.eh_host_reset_handler = qla2xxx_eh_host_reset,
.slave_configure = qla2xxx_slave_configure,
.sdev_configure = qla2xxx_sdev_configure,
.sdev_init = qla2xxx_sdev_init,
.sdev_destroy = qla2xxx_sdev_destroy,

View File

@ -975,7 +975,8 @@ static inline void update_can_queue(struct Scsi_Host *host, u_int in_ptr, u_int
host->sg_tablesize = QLOGICPTI_MAX_SG(num_free);
}
static int qlogicpti_slave_configure(struct scsi_device *sdev)
static int qlogicpti_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct qlogicpti *qpti = shost_priv(sdev->host);
int tgt = sdev->id;
@ -1292,7 +1293,7 @@ static const struct scsi_host_template qpti_template = {
.name = "qlogicpti",
.info = qlogicpti_info,
.queuecommand = qlogicpti_queuecommand,
.slave_configure = qlogicpti_slave_configure,
.sdev_configure = qlogicpti_sdev_configure,
.eh_abort_handler = qlogicpti_abort,
.eh_host_reset_handler = qlogicpti_reset,
.can_queue = QLOGICPTI_REQ_QUEUE_LEN,

View File

@ -5888,14 +5888,15 @@ static int scsi_debug_sdev_init(struct scsi_device *sdp)
return 0;
}
static int scsi_debug_slave_configure(struct scsi_device *sdp)
static int scsi_debug_sdev_configure(struct scsi_device *sdp,
struct queue_limits *lim)
{
struct sdebug_dev_info *devip =
(struct sdebug_dev_info *)sdp->hostdata;
struct dentry *dentry;
if (sdebug_verbose)
pr_info("slave_configure <%u %u %u %llu>\n",
pr_info("sdev_configure <%u %u %u %llu>\n",
sdp->host->host_no, sdp->channel, sdp->id, sdp->lun);
if (sdp->host->max_cmd_len != SDEBUG_MAX_CMD_LEN)
sdp->host->max_cmd_len = SDEBUG_MAX_CMD_LEN;
@ -8713,8 +8714,8 @@ static struct scsi_host_template sdebug_driver_template = {
.name = "SCSI DEBUG",
.info = scsi_debug_info,
.sdev_init = scsi_debug_sdev_init,
.slave_configure = scsi_debug_slave_configure,
.sdev_destroy = scsi_debug_sdev_destroy,
.sdev_configure = scsi_debug_sdev_configure,
.sdev_destroy = scsi_debug_sdev_destroy,
.ioctl = scsi_debug_ioctl,
.queuecommand = scsi_debug_queuecommand,
.change_queue_depth = sdebug_change_qdepth,

View File

@ -316,7 +316,7 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
sdev->hostdata = hostdata;
/* if the device needs this changing, it may do so in the
* slave_configure function */
* sdev_configure function */
sdev->max_device_blocked = SCSI_DEFAULT_DEVICE_BLOCKED;
/*

View File

@ -6558,7 +6558,8 @@ static inline bool pqi_is_tape_changer_device(struct pqi_scsi_dev *device)
return device->devtype == TYPE_TAPE || device->devtype == TYPE_MEDIUM_CHANGER;
}
static int pqi_slave_configure(struct scsi_device *sdev)
static int pqi_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
int rc = 0;
struct pqi_scsi_dev *device;
@ -7550,7 +7551,7 @@ static const struct scsi_host_template pqi_driver_template = {
.eh_abort_handler = pqi_eh_abort_handler,
.ioctl = pqi_ioctl,
.sdev_init = pqi_sdev_init,
.slave_configure = pqi_slave_configure,
.sdev_configure = pqi_sdev_configure,
.sdev_destroy = pqi_sdev_destroy,
.map_queues = pqi_map_queues,
.sdev_groups = pqi_sdev_groups,

View File

@ -57,11 +57,11 @@ snic_sdev_init(struct scsi_device *sdev)
}
/*
* snic_slave_configure : callback function to SCSI Mid Layer, called on
* snic_sdev_configure : callback function to SCSI Mid Layer, called on
* scsi device initialization.
*/
static int
snic_slave_configure(struct scsi_device *sdev)
snic_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
struct snic *snic = shost_priv(sdev->host);
u32 qdepth = 0, max_ios = 0;
@ -108,7 +108,7 @@ static const struct scsi_host_template snic_host_template = {
.eh_device_reset_handler = snic_device_reset,
.eh_host_reset_handler = snic_host_reset,
.sdev_init = snic_sdev_init,
.slave_configure = snic_slave_configure,
.sdev_configure = snic_sdev_configure,
.change_queue_depth = snic_change_queue_depth,
.this_id = -1,
.cmd_per_lun = SNIC_DFLT_QUEUE_DEPTH,

View File

@ -584,7 +584,7 @@ static void return_abnormal_state(struct st_hba *hba, int status)
spin_unlock_irqrestore(hba->host->host_lock, flags);
}
static int
stex_slave_config(struct scsi_device *sdev)
stex_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
{
sdev->use_10_for_rw = 1;
sdev->use_10_for_ms = 1;
@ -1481,7 +1481,7 @@ static const struct scsi_host_template driver_template = {
.proc_name = DRV_NAME,
.bios_param = stex_biosparam,
.queuecommand = stex_queuecommand,
.slave_configure = stex_slave_config,
.sdev_configure = stex_sdev_configure,
.eh_abort_handler = stex_abort,
.eh_host_reset_handler = stex_reset,
.this_id = -1,

View File

@ -1574,7 +1574,8 @@ static int storvsc_device_alloc(struct scsi_device *sdevice)
return 0;
}
static int storvsc_device_configure(struct scsi_device *sdevice)
static int storvsc_sdev_configure(struct scsi_device *sdevice,
struct queue_limits *lim)
{
blk_queue_rq_timeout(sdevice->request_queue, (storvsc_timeout * HZ));
@ -1876,7 +1877,7 @@ static struct scsi_host_template scsi_driver = {
.proc_name = "storvsc_host",
.eh_timed_out = storvsc_eh_timed_out,
.sdev_init = storvsc_device_alloc,
.slave_configure = storvsc_device_configure,
.sdev_configure = storvsc_sdev_configure,
.cmd_per_lun = 2048,
.this_id = -1,
/* Ensure there are no gaps in presented sgls */

View File

@ -825,7 +825,8 @@ static int sym53c8xx_sdev_init(struct scsi_device *sdev)
/*
* Linux entry point for device queue sizing.
*/
static int sym53c8xx_slave_configure(struct scsi_device *sdev)
static int sym53c8xx_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct sym_hcb *np = sym_get_hcb(sdev->host);
struct sym_tcb *tp = &np->target[sdev->id];
@ -1685,7 +1686,7 @@ static const struct scsi_host_template sym2_template = {
.cmd_size = sizeof(struct sym_ucmd),
.queuecommand = sym53c8xx_queue_command,
.sdev_init = sym53c8xx_sdev_init,
.slave_configure = sym53c8xx_slave_configure,
.sdev_configure = sym53c8xx_sdev_configure,
.sdev_destroy = sym53c8xx_sdev_destroy,
.eh_abort_handler = sym53c8xx_eh_abort_handler,
.eh_target_reset_handler = sym53c8xx_eh_target_reset_handler,

View File

@ -735,7 +735,8 @@ static int scsifront_dev_reset_handler(struct scsi_cmnd *sc)
return scsifront_action_handler(sc, VSCSIIF_ACT_SCSI_RESET);
}
static int scsifront_sdev_configure(struct scsi_device *sdev)
static int scsifront_sdev_configure(struct scsi_device *sdev,
struct queue_limits *lim)
{
struct vscsifrnt_info *info = shost_priv(sdev->host);
int err;
@ -776,7 +777,7 @@ static const struct scsi_host_template scsifront_sht = {
.queuecommand = scsifront_queuecommand,
.eh_abort_handler = scsifront_eh_abort_handler,
.eh_device_reset_handler = scsifront_dev_reset_handler,
.slave_configure = scsifront_sdev_configure,
.sdev_configure = scsifront_sdev_configure,
.sdev_destroy = scsifront_sdev_destroy,
.cmd_per_lun = VSCSIIF_DEFAULT_CMD_PER_LUN,
.can_queue = VSCSIIF_MAX_REQS,
@ -1074,7 +1075,7 @@ static void scsifront_do_lun_hotplug(struct vscsifrnt_info *info, int op)
continue;
/*
* Front device state path, used in slave_configure called
* Front device state path, used in sdev_configure called
* on successfull scsi_add_device, and in sdev_destroy called
* on remove of a device.
*/