mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
scsi: libata: Switch to using ->device_configure
Switch to the ->device_configure method instead of ->slave_configure and update the block limits on the passed in queue_limits instead of using the per-limit accessors. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20240409143748.980206-21-hch@lst.de Reviewed-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Acked-by: Damien Le Moal <dlemoal@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
a92041bd5f
commit
a25a9c85d1
@ -397,7 +397,7 @@ extern const struct attribute_group *ahci_sdev_groups[];
|
|||||||
.sdev_groups = ahci_sdev_groups, \
|
.sdev_groups = ahci_sdev_groups, \
|
||||||
.change_queue_depth = ata_scsi_change_queue_depth, \
|
.change_queue_depth = ata_scsi_change_queue_depth, \
|
||||||
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
||||||
.slave_configure = ata_scsi_slave_config
|
.device_configure = ata_scsi_device_configure
|
||||||
|
|
||||||
extern struct ata_port_operations ahci_ops;
|
extern struct ata_port_operations ahci_ops;
|
||||||
extern struct ata_port_operations ahci_platform_ops;
|
extern struct ata_port_operations ahci_platform_ops;
|
||||||
|
@ -1254,21 +1254,24 @@ void ata_sas_tport_delete(struct ata_port *ap)
|
|||||||
EXPORT_SYMBOL_GPL(ata_sas_tport_delete);
|
EXPORT_SYMBOL_GPL(ata_sas_tport_delete);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ata_sas_slave_configure - Default slave_config routine for libata devices
|
* ata_sas_device_configure - Default device_configure routine for libata
|
||||||
|
* devices
|
||||||
* @sdev: SCSI device to configure
|
* @sdev: SCSI device to configure
|
||||||
|
* @lim: queue limits
|
||||||
* @ap: ATA port to which SCSI device is attached
|
* @ap: ATA port to which SCSI device is attached
|
||||||
*
|
*
|
||||||
* RETURNS:
|
* RETURNS:
|
||||||
* Zero.
|
* Zero.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ata_sas_slave_configure(struct scsi_device *sdev, struct ata_port *ap)
|
int ata_sas_device_configure(struct scsi_device *sdev, struct queue_limits *lim,
|
||||||
|
struct ata_port *ap)
|
||||||
{
|
{
|
||||||
ata_scsi_sdev_config(sdev);
|
ata_scsi_sdev_config(sdev);
|
||||||
|
|
||||||
return ata_scsi_dev_config(sdev, ap->link.device);
|
return ata_scsi_dev_config(sdev, lim, ap->link.device);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ata_sas_slave_configure);
|
EXPORT_SYMBOL_GPL(ata_sas_device_configure);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ata_sas_queuecmd - Issue SCSI cdb to libata-managed device
|
* ata_sas_queuecmd - Issue SCSI cdb to libata-managed device
|
||||||
|
@ -1021,7 +1021,8 @@ bool ata_scsi_dma_need_drain(struct request *rq)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ata_scsi_dma_need_drain);
|
EXPORT_SYMBOL_GPL(ata_scsi_dma_need_drain);
|
||||||
|
|
||||||
int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
|
int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
|
||||||
|
struct ata_device *dev)
|
||||||
{
|
{
|
||||||
struct request_queue *q = sdev->request_queue;
|
struct request_queue *q = sdev->request_queue;
|
||||||
int depth = 1;
|
int depth = 1;
|
||||||
@ -1031,7 +1032,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
|
|||||||
|
|
||||||
/* configure max sectors */
|
/* configure max sectors */
|
||||||
dev->max_sectors = min(dev->max_sectors, sdev->host->max_sectors);
|
dev->max_sectors = min(dev->max_sectors, sdev->host->max_sectors);
|
||||||
blk_queue_max_hw_sectors(q, dev->max_sectors);
|
lim->max_hw_sectors = dev->max_sectors;
|
||||||
|
|
||||||
if (dev->class == ATA_DEV_ATAPI) {
|
if (dev->class == ATA_DEV_ATAPI) {
|
||||||
sdev->sector_size = ATA_SECT_SIZE;
|
sdev->sector_size = ATA_SECT_SIZE;
|
||||||
@ -1040,7 +1041,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
|
|||||||
blk_queue_update_dma_pad(q, ATA_DMA_PAD_SZ - 1);
|
blk_queue_update_dma_pad(q, ATA_DMA_PAD_SZ - 1);
|
||||||
|
|
||||||
/* make room for appending the drain */
|
/* make room for appending the drain */
|
||||||
blk_queue_max_segments(q, queue_max_segments(q) - 1);
|
lim->max_segments--;
|
||||||
|
|
||||||
sdev->dma_drain_len = ATAPI_MAX_DRAIN;
|
sdev->dma_drain_len = ATAPI_MAX_DRAIN;
|
||||||
sdev->dma_drain_buf = kmalloc(sdev->dma_drain_len, GFP_NOIO);
|
sdev->dma_drain_buf = kmalloc(sdev->dma_drain_len, GFP_NOIO);
|
||||||
@ -1077,7 +1078,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
|
|||||||
"sector_size=%u > PAGE_SIZE, PIO may malfunction\n",
|
"sector_size=%u > PAGE_SIZE, PIO may malfunction\n",
|
||||||
sdev->sector_size);
|
sdev->sector_size);
|
||||||
|
|
||||||
blk_queue_update_dma_alignment(q, sdev->sector_size - 1);
|
lim->dma_alignment = sdev->sector_size - 1;
|
||||||
|
|
||||||
if (dev->flags & ATA_DFLAG_AN)
|
if (dev->flags & ATA_DFLAG_AN)
|
||||||
set_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events);
|
set_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events);
|
||||||
@ -1131,8 +1132,9 @@ int ata_scsi_slave_alloc(struct scsi_device *sdev)
|
|||||||
EXPORT_SYMBOL_GPL(ata_scsi_slave_alloc);
|
EXPORT_SYMBOL_GPL(ata_scsi_slave_alloc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ata_scsi_slave_config - Set SCSI device attributes
|
* ata_scsi_device_configure - Set SCSI device attributes
|
||||||
* @sdev: SCSI device to examine
|
* @sdev: SCSI device to examine
|
||||||
|
* @lim: queue limits
|
||||||
*
|
*
|
||||||
* This is called before we actually start reading
|
* This is called before we actually start reading
|
||||||
* and writing to the device, to configure certain
|
* and writing to the device, to configure certain
|
||||||
@ -1142,17 +1144,18 @@ EXPORT_SYMBOL_GPL(ata_scsi_slave_alloc);
|
|||||||
* Defined by SCSI layer. We don't really care.
|
* Defined by SCSI layer. We don't really care.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ata_scsi_slave_config(struct scsi_device *sdev)
|
int ata_scsi_device_configure(struct scsi_device *sdev,
|
||||||
|
struct queue_limits *lim)
|
||||||
{
|
{
|
||||||
struct ata_port *ap = ata_shost_to_port(sdev->host);
|
struct ata_port *ap = ata_shost_to_port(sdev->host);
|
||||||
struct ata_device *dev = __ata_scsi_find_dev(ap, sdev);
|
struct ata_device *dev = __ata_scsi_find_dev(ap, sdev);
|
||||||
|
|
||||||
if (dev)
|
if (dev)
|
||||||
return ata_scsi_dev_config(sdev, dev);
|
return ata_scsi_dev_config(sdev, lim, dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ata_scsi_slave_config);
|
EXPORT_SYMBOL_GPL(ata_scsi_device_configure);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ata_scsi_slave_destroy - SCSI device is about to be destroyed
|
* ata_scsi_slave_destroy - SCSI device is about to be destroyed
|
||||||
|
@ -131,7 +131,8 @@ extern void ata_scsi_dev_rescan(struct work_struct *work);
|
|||||||
extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
|
extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
|
||||||
unsigned int id, u64 lun);
|
unsigned int id, u64 lun);
|
||||||
void ata_scsi_sdev_config(struct scsi_device *sdev);
|
void ata_scsi_sdev_config(struct scsi_device *sdev);
|
||||||
int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev);
|
int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
|
||||||
|
struct ata_device *dev);
|
||||||
int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev);
|
int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev);
|
||||||
|
|
||||||
/* libata-eh.c */
|
/* libata-eh.c */
|
||||||
|
@ -806,7 +806,7 @@ static int pata_macio_device_configure(struct scsi_device *sdev,
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* First call original */
|
/* First call original */
|
||||||
rc = ata_scsi_slave_config(sdev);
|
rc = ata_scsi_device_configure(sdev, lim);
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
|
@ -673,7 +673,7 @@ static const struct scsi_host_template mv6_sht = {
|
|||||||
.sdev_groups = ata_ncq_sdev_groups,
|
.sdev_groups = ata_ncq_sdev_groups,
|
||||||
.change_queue_depth = ata_scsi_change_queue_depth,
|
.change_queue_depth = ata_scsi_change_queue_depth,
|
||||||
.tag_alloc_policy = BLK_TAG_ALLOC_RR,
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR,
|
||||||
.slave_configure = ata_scsi_slave_config
|
.device_configure = ata_scsi_device_configure
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct ata_port_operations mv5_ops = {
|
static struct ata_port_operations mv5_ops = {
|
||||||
|
@ -676,7 +676,7 @@ static int nv_adma_device_configure(struct scsi_device *sdev,
|
|||||||
int adma_enable;
|
int adma_enable;
|
||||||
u32 current_reg, new_reg, config_mask;
|
u32 current_reg, new_reg, config_mask;
|
||||||
|
|
||||||
rc = ata_scsi_slave_config(sdev);
|
rc = ata_scsi_device_configure(sdev, lim);
|
||||||
|
|
||||||
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
|
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
|
||||||
/* Not a proper libata device, ignore */
|
/* Not a proper libata device, ignore */
|
||||||
@ -1882,7 +1882,7 @@ static int nv_swncq_device_configure(struct scsi_device *sdev,
|
|||||||
u8 check_maxtor = 0;
|
u8 check_maxtor = 0;
|
||||||
unsigned char model_num[ATA_ID_PROD_LEN + 1];
|
unsigned char model_num[ATA_ID_PROD_LEN + 1];
|
||||||
|
|
||||||
rc = ata_scsi_slave_config(sdev);
|
rc = ata_scsi_device_configure(sdev, lim);
|
||||||
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
|
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
|
||||||
/* Not a proper libata device, ignore */
|
/* Not a proper libata device, ignore */
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -381,7 +381,7 @@ static const struct scsi_host_template sil24_sht = {
|
|||||||
.tag_alloc_policy = BLK_TAG_ALLOC_FIFO,
|
.tag_alloc_policy = BLK_TAG_ALLOC_FIFO,
|
||||||
.sdev_groups = ata_ncq_sdev_groups,
|
.sdev_groups = ata_ncq_sdev_groups,
|
||||||
.change_queue_depth = ata_scsi_change_queue_depth,
|
.change_queue_depth = ata_scsi_change_queue_depth,
|
||||||
.slave_configure = ata_scsi_slave_config
|
.device_configure = ata_scsi_device_configure
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct ata_port_operations sil24_ops = {
|
static struct ata_port_operations sil24_ops = {
|
||||||
|
@ -643,7 +643,8 @@ extern int hisi_sas_probe(struct platform_device *pdev,
|
|||||||
const struct hisi_sas_hw *ops);
|
const struct hisi_sas_hw *ops);
|
||||||
extern void hisi_sas_remove(struct platform_device *pdev);
|
extern void hisi_sas_remove(struct platform_device *pdev);
|
||||||
|
|
||||||
extern int hisi_sas_slave_configure(struct scsi_device *sdev);
|
int hisi_sas_device_configure(struct scsi_device *sdev,
|
||||||
|
struct queue_limits *lim);
|
||||||
extern int hisi_sas_slave_alloc(struct scsi_device *sdev);
|
extern int hisi_sas_slave_alloc(struct scsi_device *sdev);
|
||||||
extern int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time);
|
extern int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time);
|
||||||
extern void hisi_sas_scan_start(struct Scsi_Host *shost);
|
extern void hisi_sas_scan_start(struct Scsi_Host *shost);
|
||||||
|
@ -868,10 +868,11 @@ err_out:
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hisi_sas_slave_configure(struct scsi_device *sdev)
|
int hisi_sas_device_configure(struct scsi_device *sdev,
|
||||||
|
struct queue_limits *lim)
|
||||||
{
|
{
|
||||||
struct domain_device *dev = sdev_to_domain_dev(sdev);
|
struct domain_device *dev = sdev_to_domain_dev(sdev);
|
||||||
int ret = sas_slave_configure(sdev);
|
int ret = sas_device_configure(sdev, lim);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@ -880,7 +881,7 @@ int hisi_sas_slave_configure(struct scsi_device *sdev)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(hisi_sas_slave_configure);
|
EXPORT_SYMBOL_GPL(hisi_sas_device_configure);
|
||||||
|
|
||||||
void hisi_sas_scan_start(struct Scsi_Host *shost)
|
void hisi_sas_scan_start(struct Scsi_Host *shost)
|
||||||
{
|
{
|
||||||
|
@ -1736,7 +1736,7 @@ ATTRIBUTE_GROUPS(host_v1_hw);
|
|||||||
|
|
||||||
static const struct scsi_host_template sht_v1_hw = {
|
static const struct scsi_host_template sht_v1_hw = {
|
||||||
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
||||||
.slave_configure = hisi_sas_slave_configure,
|
.device_configure = hisi_sas_device_configure,
|
||||||
.scan_finished = hisi_sas_scan_finished,
|
.scan_finished = hisi_sas_scan_finished,
|
||||||
.scan_start = hisi_sas_scan_start,
|
.scan_start = hisi_sas_scan_start,
|
||||||
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
|
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
|
||||||
|
@ -3568,7 +3568,7 @@ static void map_queues_v2_hw(struct Scsi_Host *shost)
|
|||||||
|
|
||||||
static const struct scsi_host_template sht_v2_hw = {
|
static const struct scsi_host_template sht_v2_hw = {
|
||||||
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
||||||
.slave_configure = hisi_sas_slave_configure,
|
.device_configure = hisi_sas_device_configure,
|
||||||
.scan_finished = hisi_sas_scan_finished,
|
.scan_finished = hisi_sas_scan_finished,
|
||||||
.scan_start = hisi_sas_scan_start,
|
.scan_start = hisi_sas_scan_start,
|
||||||
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
|
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
|
||||||
|
@ -2894,11 +2894,12 @@ static ssize_t iopoll_q_cnt_v3_hw_show(struct device *dev,
|
|||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(iopoll_q_cnt_v3_hw);
|
static DEVICE_ATTR_RO(iopoll_q_cnt_v3_hw);
|
||||||
|
|
||||||
static int slave_configure_v3_hw(struct scsi_device *sdev)
|
static int device_configure_v3_hw(struct scsi_device *sdev,
|
||||||
|
struct queue_limits *lim)
|
||||||
{
|
{
|
||||||
struct Scsi_Host *shost = dev_to_shost(&sdev->sdev_gendev);
|
struct Scsi_Host *shost = dev_to_shost(&sdev->sdev_gendev);
|
||||||
struct hisi_hba *hisi_hba = shost_priv(shost);
|
struct hisi_hba *hisi_hba = shost_priv(shost);
|
||||||
int ret = hisi_sas_slave_configure(sdev);
|
int ret = hisi_sas_device_configure(sdev, lim);
|
||||||
struct device *dev = hisi_hba->dev;
|
struct device *dev = hisi_hba->dev;
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -3321,7 +3322,7 @@ static void hisi_sas_map_queues(struct Scsi_Host *shost)
|
|||||||
|
|
||||||
static const struct scsi_host_template sht_v3_hw = {
|
static const struct scsi_host_template sht_v3_hw = {
|
||||||
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
LIBSAS_SHT_BASE_NO_SLAVE_INIT
|
||||||
.slave_configure = slave_configure_v3_hw,
|
.device_configure = device_configure_v3_hw,
|
||||||
.scan_finished = hisi_sas_scan_finished,
|
.scan_finished = hisi_sas_scan_finished,
|
||||||
.scan_start = hisi_sas_scan_start,
|
.scan_start = hisi_sas_scan_start,
|
||||||
.map_queues = hisi_sas_map_queues,
|
.map_queues = hisi_sas_map_queues,
|
||||||
|
@ -804,14 +804,15 @@ EXPORT_SYMBOL_GPL(sas_target_alloc);
|
|||||||
|
|
||||||
#define SAS_DEF_QD 256
|
#define SAS_DEF_QD 256
|
||||||
|
|
||||||
int sas_slave_configure(struct scsi_device *scsi_dev)
|
int sas_device_configure(struct scsi_device *scsi_dev,
|
||||||
|
struct queue_limits *lim)
|
||||||
{
|
{
|
||||||
struct domain_device *dev = sdev_to_domain_dev(scsi_dev);
|
struct domain_device *dev = sdev_to_domain_dev(scsi_dev);
|
||||||
|
|
||||||
BUG_ON(dev->rphy->identify.device_type != SAS_END_DEVICE);
|
BUG_ON(dev->rphy->identify.device_type != SAS_END_DEVICE);
|
||||||
|
|
||||||
if (dev_is_sata(dev)) {
|
if (dev_is_sata(dev)) {
|
||||||
ata_sas_slave_configure(scsi_dev, dev->sata_dev.ap);
|
ata_sas_device_configure(scsi_dev, lim, dev->sata_dev.ap);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -829,7 +830,7 @@ int sas_slave_configure(struct scsi_device *scsi_dev)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(sas_slave_configure);
|
EXPORT_SYMBOL_GPL(sas_device_configure);
|
||||||
|
|
||||||
int sas_change_queue_depth(struct scsi_device *sdev, int depth)
|
int sas_change_queue_depth(struct scsi_device *sdev, int depth)
|
||||||
{
|
{
|
||||||
|
@ -1151,7 +1151,8 @@ extern int ata_std_bios_param(struct scsi_device *sdev,
|
|||||||
sector_t capacity, int geom[]);
|
sector_t capacity, int geom[]);
|
||||||
extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev);
|
extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev);
|
||||||
extern int ata_scsi_slave_alloc(struct scsi_device *sdev);
|
extern int ata_scsi_slave_alloc(struct scsi_device *sdev);
|
||||||
extern int ata_scsi_slave_config(struct scsi_device *sdev);
|
int ata_scsi_device_configure(struct scsi_device *sdev,
|
||||||
|
struct queue_limits *lim);
|
||||||
extern void ata_scsi_slave_destroy(struct scsi_device *sdev);
|
extern void ata_scsi_slave_destroy(struct scsi_device *sdev);
|
||||||
extern int ata_scsi_change_queue_depth(struct scsi_device *sdev,
|
extern int ata_scsi_change_queue_depth(struct scsi_device *sdev,
|
||||||
int queue_depth);
|
int queue_depth);
|
||||||
@ -1249,7 +1250,8 @@ extern struct ata_port *ata_sas_port_alloc(struct ata_host *,
|
|||||||
extern void ata_port_probe(struct ata_port *ap);
|
extern void ata_port_probe(struct ata_port *ap);
|
||||||
extern int ata_sas_tport_add(struct device *parent, struct ata_port *ap);
|
extern int ata_sas_tport_add(struct device *parent, struct ata_port *ap);
|
||||||
extern void ata_sas_tport_delete(struct ata_port *ap);
|
extern void ata_sas_tport_delete(struct ata_port *ap);
|
||||||
extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *);
|
int ata_sas_device_configure(struct scsi_device *sdev, struct queue_limits *lim,
|
||||||
|
struct ata_port *ap);
|
||||||
extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap);
|
extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap);
|
||||||
extern void ata_tf_to_fis(const struct ata_taskfile *tf,
|
extern void ata_tf_to_fis(const struct ata_taskfile *tf,
|
||||||
u8 pmp, int is_cmd, u8 *fis);
|
u8 pmp, int is_cmd, u8 *fis);
|
||||||
@ -1415,13 +1417,13 @@ extern const struct attribute_group *ata_common_sdev_groups[];
|
|||||||
__ATA_BASE_SHT(drv_name), \
|
__ATA_BASE_SHT(drv_name), \
|
||||||
.can_queue = ATA_DEF_QUEUE, \
|
.can_queue = ATA_DEF_QUEUE, \
|
||||||
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
||||||
.slave_configure = ata_scsi_slave_config
|
.device_configure = ata_scsi_device_configure
|
||||||
|
|
||||||
#define ATA_SUBBASE_SHT_QD(drv_name, drv_qd) \
|
#define ATA_SUBBASE_SHT_QD(drv_name, drv_qd) \
|
||||||
__ATA_BASE_SHT(drv_name), \
|
__ATA_BASE_SHT(drv_name), \
|
||||||
.can_queue = drv_qd, \
|
.can_queue = drv_qd, \
|
||||||
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
||||||
.slave_configure = ata_scsi_slave_config
|
.device_configure = ata_scsi_device_configure
|
||||||
|
|
||||||
#define ATA_BASE_SHT(drv_name) \
|
#define ATA_BASE_SHT(drv_name) \
|
||||||
ATA_SUBBASE_SHT(drv_name), \
|
ATA_SUBBASE_SHT(drv_name), \
|
||||||
|
@ -683,7 +683,8 @@ int sas_phy_reset(struct sas_phy *phy, int hard_reset);
|
|||||||
int sas_phy_enable(struct sas_phy *phy, int enable);
|
int sas_phy_enable(struct sas_phy *phy, int enable);
|
||||||
extern int sas_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
extern int sas_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
||||||
extern int sas_target_alloc(struct scsi_target *);
|
extern int sas_target_alloc(struct scsi_target *);
|
||||||
extern int sas_slave_configure(struct scsi_device *);
|
int sas_device_configure(struct scsi_device *dev,
|
||||||
|
struct queue_limits *lim);
|
||||||
extern int sas_change_queue_depth(struct scsi_device *, int new_depth);
|
extern int sas_change_queue_depth(struct scsi_device *, int new_depth);
|
||||||
extern int sas_bios_param(struct scsi_device *, struct block_device *,
|
extern int sas_bios_param(struct scsi_device *, struct block_device *,
|
||||||
sector_t capacity, int *hsc);
|
sector_t capacity, int *hsc);
|
||||||
@ -749,7 +750,7 @@ void sas_notify_phy_event(struct asd_sas_phy *phy, enum phy_event event,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LIBSAS_SHT_BASE _LIBSAS_SHT_BASE \
|
#define LIBSAS_SHT_BASE _LIBSAS_SHT_BASE \
|
||||||
.slave_configure = sas_slave_configure, \
|
.device_configure = sas_device_configure, \
|
||||||
.slave_alloc = sas_slave_alloc, \
|
.slave_alloc = sas_slave_alloc, \
|
||||||
|
|
||||||
#define LIBSAS_SHT_BASE_NO_SLAVE_INIT _LIBSAS_SHT_BASE
|
#define LIBSAS_SHT_BASE_NO_SLAVE_INIT _LIBSAS_SHT_BASE
|
||||||
|
Loading…
Reference in New Issue
Block a user