Re: [PATCH 20/23] libata: switch to using ->device_configure

2024-03-25 Thread Damien Le Moal
On 3/25/24 08:54, Christoph Hellwig wrote:
> 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 

Looks OK to me. For the ata bits:

Acked-by: Damien Le Moal 

-- 
Damien Le Moal
Western Digital Research

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/06562b24-1397-4ac3-bb62-f2409503e956%40kernel.org.


[PATCH 20/23] libata: switch to using ->device_configure

2024-03-24 Thread Christoph Hellwig
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 
---
 drivers/ata/ahci.h |  2 +-
 drivers/ata/libata-sata.c  | 10 ++
 drivers/ata/libata-scsi.c  | 19 +++
 drivers/ata/libata.h   |  3 ++-
 drivers/ata/pata_macio.c   |  2 +-
 drivers/ata/sata_mv.c  |  2 +-
 drivers/ata/sata_nv.c  |  4 ++--
 drivers/ata/sata_sil24.c   |  2 +-
 drivers/scsi/aic94xx/aic94xx_init.c|  2 +-
 drivers/scsi/hisi_sas/hisi_sas.h   |  3 ++-
 drivers/scsi/hisi_sas/hisi_sas_main.c  |  7 ---
 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c |  2 +-
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |  2 +-
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |  7 ---
 drivers/scsi/isci/init.c   |  2 +-
 drivers/scsi/libsas/sas_scsi_host.c|  7 ---
 drivers/scsi/mvsas/mv_init.c   |  2 +-
 drivers/scsi/pm8001/pm8001_init.c  |  2 +-
 include/linux/libata.h | 10 ++
 include/scsi/libsas.h  |  3 ++-
 20 files changed, 53 insertions(+), 40 deletions(-)

diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
index 344c87210d8fe4..8f40f75ba08cff 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
@@ -397,7 +397,7 @@ extern const struct attribute_group *ahci_sdev_groups[];
.sdev_groups= ahci_sdev_groups, \
.change_queue_depth = ata_scsi_change_queue_depth,  \
.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_platform_ops;
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c
index 0fb1934875f208..98780d3b2f1c1a 100644
--- a/drivers/ata/libata-sata.c
+++ b/drivers/ata/libata-sata.c
@@ -1170,21 +1170,23 @@ void ata_sas_tport_delete(struct ata_port *ap)
 EXPORT_SYMBOL_GPL(ata_sas_tport_delete);
 
 /**
- * ata_sas_slave_configure - Default slave_config routine for libata 
devices
+ * ata_sas_device_configure - Default slave_config routine for libata 
devices
  * @sdev: SCSI device to configure
+ * @lim: queue limits
  * @ap: ATA port to which SCSI device is attached
  *
  * RETURNS:
  * 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);
 
-   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
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 0a0f483124c3a5..db441815d63306 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -1021,7 +1021,8 @@ bool ata_scsi_dma_need_drain(struct request *rq)
 }
 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;
int depth = 1;
@@ -1031,7 +1032,7 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct 
ata_device *dev)
 
/* configure 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) {
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);
 
/* 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_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",
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)
set_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events);
@@ -1131,8