Skip to content

Commit a25a9c8

Browse files
Christoph Hellwigmartinkpetersen
authored andcommitted
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: John Garry <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Acked-by: Damien Le Moal <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent a92041b commit a25a9c8

File tree

16 files changed

+51
-37
lines changed

16 files changed

+51
-37
lines changed

drivers/ata/ahci.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ extern const struct attribute_group *ahci_sdev_groups[];
397397
.sdev_groups = ahci_sdev_groups, \
398398
.change_queue_depth = ata_scsi_change_queue_depth, \
399399
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
400-
.slave_configure = ata_scsi_slave_config
400+
.device_configure = ata_scsi_device_configure
401401

402402
extern struct ata_port_operations ahci_ops;
403403
extern struct ata_port_operations ahci_platform_ops;

drivers/ata/libata-sata.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,21 +1254,24 @@ void ata_sas_tport_delete(struct ata_port *ap)
12541254
EXPORT_SYMBOL_GPL(ata_sas_tport_delete);
12551255

12561256
/**
1257-
* ata_sas_slave_configure - Default slave_config routine for libata devices
1257+
* ata_sas_device_configure - Default device_configure routine for libata
1258+
* devices
12581259
* @sdev: SCSI device to configure
1260+
* @lim: queue limits
12591261
* @ap: ATA port to which SCSI device is attached
12601262
*
12611263
* RETURNS:
12621264
* Zero.
12631265
*/
12641266

1265-
int ata_sas_slave_configure(struct scsi_device *sdev, struct ata_port *ap)
1267+
int ata_sas_device_configure(struct scsi_device *sdev, struct queue_limits *lim,
1268+
struct ata_port *ap)
12661269
{
12671270
ata_scsi_sdev_config(sdev);
12681271

1269-
return ata_scsi_dev_config(sdev, ap->link.device);
1272+
return ata_scsi_dev_config(sdev, lim, ap->link.device);
12701273
}
1271-
EXPORT_SYMBOL_GPL(ata_sas_slave_configure);
1274+
EXPORT_SYMBOL_GPL(ata_sas_device_configure);
12721275

12731276
/**
12741277
* ata_sas_queuecmd - Issue SCSI cdb to libata-managed device

drivers/ata/libata-scsi.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,7 +1021,8 @@ bool ata_scsi_dma_need_drain(struct request *rq)
10211021
}
10221022
EXPORT_SYMBOL_GPL(ata_scsi_dma_need_drain);
10231023

1024-
int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
1024+
int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
1025+
struct ata_device *dev)
10251026
{
10261027
struct request_queue *q = sdev->request_queue;
10271028
int depth = 1;
@@ -1031,7 +1032,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
10311032

10321033
/* configure max sectors */
10331034
dev->max_sectors = min(dev->max_sectors, sdev->host->max_sectors);
1034-
blk_queue_max_hw_sectors(q, dev->max_sectors);
1035+
lim->max_hw_sectors = dev->max_sectors;
10351036

10361037
if (dev->class == ATA_DEV_ATAPI) {
10371038
sdev->sector_size = ATA_SECT_SIZE;
@@ -1040,7 +1041,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
10401041
blk_queue_update_dma_pad(q, ATA_DMA_PAD_SZ - 1);
10411042

10421043
/* make room for appending the drain */
1043-
blk_queue_max_segments(q, queue_max_segments(q) - 1);
1044+
lim->max_segments--;
10441045

10451046
sdev->dma_drain_len = ATAPI_MAX_DRAIN;
10461047
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)
10771078
"sector_size=%u > PAGE_SIZE, PIO may malfunction\n",
10781079
sdev->sector_size);
10791080

1080-
blk_queue_update_dma_alignment(q, sdev->sector_size - 1);
1081+
lim->dma_alignment = sdev->sector_size - 1;
10811082

10821083
if (dev->flags & ATA_DFLAG_AN)
10831084
set_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events);
@@ -1131,8 +1132,9 @@ int ata_scsi_slave_alloc(struct scsi_device *sdev)
11311132
EXPORT_SYMBOL_GPL(ata_scsi_slave_alloc);
11321133

11331134
/**
1134-
* ata_scsi_slave_config - Set SCSI device attributes
1135+
* ata_scsi_device_configure - Set SCSI device attributes
11351136
* @sdev: SCSI device to examine
1137+
* @lim: queue limits
11361138
*
11371139
* This is called before we actually start reading
11381140
* and writing to the device, to configure certain
@@ -1142,17 +1144,18 @@ EXPORT_SYMBOL_GPL(ata_scsi_slave_alloc);
11421144
* Defined by SCSI layer. We don't really care.
11431145
*/
11441146

1145-
int ata_scsi_slave_config(struct scsi_device *sdev)
1147+
int ata_scsi_device_configure(struct scsi_device *sdev,
1148+
struct queue_limits *lim)
11461149
{
11471150
struct ata_port *ap = ata_shost_to_port(sdev->host);
11481151
struct ata_device *dev = __ata_scsi_find_dev(ap, sdev);
11491152

11501153
if (dev)
1151-
return ata_scsi_dev_config(sdev, dev);
1154+
return ata_scsi_dev_config(sdev, lim, dev);
11521155

11531156
return 0;
11541157
}
1155-
EXPORT_SYMBOL_GPL(ata_scsi_slave_config);
1158+
EXPORT_SYMBOL_GPL(ata_scsi_device_configure);
11561159

11571160
/**
11581161
* ata_scsi_slave_destroy - SCSI device is about to be destroyed

drivers/ata/libata.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ extern void ata_scsi_dev_rescan(struct work_struct *work);
131131
extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
132132
unsigned int id, u64 lun);
133133
void ata_scsi_sdev_config(struct scsi_device *sdev);
134-
int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev);
134+
int ata_scsi_dev_config(struct scsi_device *sdev, struct queue_limits *lim,
135+
struct ata_device *dev);
135136
int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev);
136137

137138
/* libata-eh.c */

drivers/ata/pata_macio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ static int pata_macio_device_configure(struct scsi_device *sdev,
806806
int rc;
807807

808808
/* First call original */
809-
rc = ata_scsi_slave_config(sdev);
809+
rc = ata_scsi_device_configure(sdev, lim);
810810
if (rc)
811811
return rc;
812812

drivers/ata/sata_mv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ static const struct scsi_host_template mv6_sht = {
673673
.sdev_groups = ata_ncq_sdev_groups,
674674
.change_queue_depth = ata_scsi_change_queue_depth,
675675
.tag_alloc_policy = BLK_TAG_ALLOC_RR,
676-
.slave_configure = ata_scsi_slave_config
676+
.device_configure = ata_scsi_device_configure
677677
};
678678

679679
static struct ata_port_operations mv5_ops = {

drivers/ata/sata_nv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ static int nv_adma_device_configure(struct scsi_device *sdev,
676676
int adma_enable;
677677
u32 current_reg, new_reg, config_mask;
678678

679-
rc = ata_scsi_slave_config(sdev);
679+
rc = ata_scsi_device_configure(sdev, lim);
680680

681681
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
682682
/* Not a proper libata device, ignore */
@@ -1882,7 +1882,7 @@ static int nv_swncq_device_configure(struct scsi_device *sdev,
18821882
u8 check_maxtor = 0;
18831883
unsigned char model_num[ATA_ID_PROD_LEN + 1];
18841884

1885-
rc = ata_scsi_slave_config(sdev);
1885+
rc = ata_scsi_device_configure(sdev, lim);
18861886
if (sdev->id >= ATA_MAX_DEVICES || sdev->channel || sdev->lun)
18871887
/* Not a proper libata device, ignore */
18881888
return rc;

drivers/ata/sata_sil24.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ static const struct scsi_host_template sil24_sht = {
381381
.tag_alloc_policy = BLK_TAG_ALLOC_FIFO,
382382
.sdev_groups = ata_ncq_sdev_groups,
383383
.change_queue_depth = ata_scsi_change_queue_depth,
384-
.slave_configure = ata_scsi_slave_config
384+
.device_configure = ata_scsi_device_configure
385385
};
386386

387387
static struct ata_port_operations sil24_ops = {

drivers/scsi/hisi_sas/hisi_sas.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,8 @@ extern int hisi_sas_probe(struct platform_device *pdev,
643643
const struct hisi_sas_hw *ops);
644644
extern void hisi_sas_remove(struct platform_device *pdev);
645645

646-
extern int hisi_sas_slave_configure(struct scsi_device *sdev);
646+
int hisi_sas_device_configure(struct scsi_device *sdev,
647+
struct queue_limits *lim);
647648
extern int hisi_sas_slave_alloc(struct scsi_device *sdev);
648649
extern int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time);
649650
extern void hisi_sas_scan_start(struct Scsi_Host *shost);

drivers/scsi/hisi_sas/hisi_sas_main.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -868,10 +868,11 @@ static int hisi_sas_dev_found(struct domain_device *device)
868868
return rc;
869869
}
870870

871-
int hisi_sas_slave_configure(struct scsi_device *sdev)
871+
int hisi_sas_device_configure(struct scsi_device *sdev,
872+
struct queue_limits *lim)
872873
{
873874
struct domain_device *dev = sdev_to_domain_dev(sdev);
874-
int ret = sas_slave_configure(sdev);
875+
int ret = sas_device_configure(sdev, lim);
875876

876877
if (ret)
877878
return ret;
@@ -880,7 +881,7 @@ int hisi_sas_slave_configure(struct scsi_device *sdev)
880881

881882
return 0;
882883
}
883-
EXPORT_SYMBOL_GPL(hisi_sas_slave_configure);
884+
EXPORT_SYMBOL_GPL(hisi_sas_device_configure);
884885

885886
void hisi_sas_scan_start(struct Scsi_Host *shost)
886887
{

0 commit comments

Comments
 (0)