* [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-08 19:41 ` Igor Pylypiv
2024-03-08 11:43 ` [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE John Garry
` (6 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
There is much duplication in the scsi_host_template structure for the
drivers which use libsas.
Similar to how a standard template is used in libata with __ATA_BASE_SHT,
create a standard template in LIBSAS_SHT_BASE.
Don't set a default for max_sectors at SCSI_DEFAULT_MAX_SECTORS, as
scsi_host_alloc() will default to this value automatically.
Even though some drivers don't set proc_name, it won't make much difference
to set as DRV_NAME.
Also add LIBSAS_SHT_BASE_NO_SLAVE_INIT for the hisi_sas drivers which have
custom .slave_alloc and .slave_configure methods.
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
include/scsi/libsas.h | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index f5257103fdb6..de842602f47e 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -726,4 +726,33 @@ void sas_notify_port_event(struct asd_sas_phy *phy, enum port_event event,
void sas_notify_phy_event(struct asd_sas_phy *phy, enum phy_event event,
gfp_t gfp_flags);
+#define __LIBSAS_SHT_BASE \
+ .module = THIS_MODULE, \
+ .name = DRV_NAME, \
+ .proc_name = DRV_NAME, \
+ .queuecommand = sas_queuecommand, \
+ .dma_need_drain = ata_scsi_dma_need_drain, \
+ .target_alloc = sas_target_alloc, \
+ .change_queue_depth = sas_change_queue_depth, \
+ .bios_param = sas_bios_param, \
+ .this_id = -1, \
+ .eh_device_reset_handler = sas_eh_device_reset_handler, \
+ .eh_target_reset_handler = sas_eh_target_reset_handler, \
+ .target_destroy = sas_target_destroy, \
+ .ioctl = sas_ioctl, \
+
+#ifdef CONFIG_COMPAT
+#define _LIBSAS_SHT_BASE __LIBSAS_SHT_BASE \
+ .compat_ioctl = sas_ioctl,
+#else
+#define _LIBSAS_SHT_BASE __LIBSAS_SHT_BASE
+#endif
+
+#define LIBSAS_SHT_BASE _LIBSAS_SHT_BASE \
+ .slave_configure = sas_slave_configure, \
+ .slave_alloc = sas_slave_alloc, \
+
+#define LIBSAS_SHT_BASE_NO_SLAVE_INIT _LIBSAS_SHT_BASE
+
+
#endif /* _SASLIB_H_ */
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE John Garry
@ 2024-03-08 19:41 ` Igor Pylypiv
2024-03-10 10:02 ` John Garry
0 siblings, 1 reply; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-08 19:41 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:34AM +0000, John Garry wrote:
> There is much duplication in the scsi_host_template structure for the
> drivers which use libsas.
>
> Similar to how a standard template is used in libata with __ATA_BASE_SHT,
> create a standard template in LIBSAS_SHT_BASE.
>
> Don't set a default for max_sectors at SCSI_DEFAULT_MAX_SECTORS, as
> scsi_host_alloc() will default to this value automatically.
>
> Even though some drivers don't set proc_name, it won't make much difference
> to set as DRV_NAME.
>
> Also add LIBSAS_SHT_BASE_NO_SLAVE_INIT for the hisi_sas drivers which have
> custom .slave_alloc and .slave_configure methods.
Looks like libata drivers have no problem overriding default values that were
set by __ATA_BASE_SHT. For example __ATA_BASE_SHT sets .can_queue .sdev_attrs
and then AHCI_SHT overrides those with AHCI specific values:
#define AHCI_SHT(drv_name) \
ATA_NCQ_SHT(drv_name), \
.can_queue = AHCI_MAX_CMDS, \
.sg_tablesize = AHCI_MAX_SG, \
.dma_boundary = AHCI_DMA_BOUNDARY, \
.shost_attrs = ahci_shost_attrs, \
.sdev_attrs = ahci_sdev_attrs
Perhaps there is no need for LIBSAS_SHT_BASE_NO_SLAVE_INIT since hisi_sas
can use LIBSAS_SHT_BASE with .slave_alloc and .slave_configure overrides?
Similarly hisi_sas and pm8001 can override the default ".sg_tablesize = SG_ALL".
Thanks,
Igor
>
> Reviewed-by: Jason Yan <yanaijie@huawei.com>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> include/scsi/libsas.h | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
> index f5257103fdb6..de842602f47e 100644
> --- a/include/scsi/libsas.h
> +++ b/include/scsi/libsas.h
> @@ -726,4 +726,33 @@ void sas_notify_port_event(struct asd_sas_phy *phy, enum port_event event,
> void sas_notify_phy_event(struct asd_sas_phy *phy, enum phy_event event,
> gfp_t gfp_flags);
>
> +#define __LIBSAS_SHT_BASE \
> + .module = THIS_MODULE, \
> + .name = DRV_NAME, \
> + .proc_name = DRV_NAME, \
> + .queuecommand = sas_queuecommand, \
> + .dma_need_drain = ata_scsi_dma_need_drain, \
> + .target_alloc = sas_target_alloc, \
> + .change_queue_depth = sas_change_queue_depth, \
> + .bios_param = sas_bios_param, \
> + .this_id = -1, \
> + .eh_device_reset_handler = sas_eh_device_reset_handler, \
> + .eh_target_reset_handler = sas_eh_target_reset_handler, \
> + .target_destroy = sas_target_destroy, \
> + .ioctl = sas_ioctl, \
> +
> +#ifdef CONFIG_COMPAT
> +#define _LIBSAS_SHT_BASE __LIBSAS_SHT_BASE \
> + .compat_ioctl = sas_ioctl,
> +#else
> +#define _LIBSAS_SHT_BASE __LIBSAS_SHT_BASE
> +#endif
> +
> +#define LIBSAS_SHT_BASE _LIBSAS_SHT_BASE \
> + .slave_configure = sas_slave_configure, \
> + .slave_alloc = sas_slave_alloc, \
> +
> +#define LIBSAS_SHT_BASE_NO_SLAVE_INIT _LIBSAS_SHT_BASE
> +
> +
> #endif /* _SASLIB_H_ */
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE
2024-03-08 19:41 ` Igor Pylypiv
@ 2024-03-10 10:02 ` John Garry
2024-03-10 20:05 ` Igor Pylypiv
0 siblings, 1 reply; 20+ messages in thread
From: John Garry @ 2024-03-10 10:02 UTC (permalink / raw)
To: Igor Pylypiv
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On 08/03/2024 19:41, Igor Pylypiv wrote:
>> Even though some drivers don't set proc_name, it won't make much difference
>> to set as DRV_NAME.
>>
>> Also add LIBSAS_SHT_BASE_NO_SLAVE_INIT for the hisi_sas drivers which have
>> custom .slave_alloc and .slave_configure methods.
> Looks like libata drivers have no problem overriding default values that were
> set by __ATA_BASE_SHT. For example __ATA_BASE_SHT sets .can_queue .sdev_attrs
> and then AHCI_SHT overrides those with AHCI specific values:
>
> #define AHCI_SHT(drv_name) \
> ATA_NCQ_SHT(drv_name), \
which tag are you looking at here?
That looks like an old definition of AHCI_SHT().
There was a significant change for this in the following:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/ata/ahci.h?h=v5.14&id=071e86fe2872e7442e42ad26f71cd6bde55344f8
Thanks,
John
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE
2024-03-10 10:02 ` John Garry
@ 2024-03-10 20:05 ` Igor Pylypiv
0 siblings, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:05 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Sun, Mar 10, 2024 at 10:02:42AM +0000, John Garry wrote:
> On 08/03/2024 19:41, Igor Pylypiv wrote:
> > > Even though some drivers don't set proc_name, it won't make much difference
> > > to set as DRV_NAME.
> > >
> > > Also add LIBSAS_SHT_BASE_NO_SLAVE_INIT for the hisi_sas drivers which have
> > > custom .slave_alloc and .slave_configure methods.
> > Looks like libata drivers have no problem overriding default values that were
> > set by __ATA_BASE_SHT. For example __ATA_BASE_SHT sets .can_queue .sdev_attrs
> > and then AHCI_SHT overrides those with AHCI specific values:
> >
> > #define AHCI_SHT(drv_name) \
> > ATA_NCQ_SHT(drv_name), \
>
> which tag are you looking at here?
>
> That looks like an old definition of AHCI_SHT().
>
> There was a significant change for this in the following:
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/ata/ahci.h?h=v5.14&id=071e86fe2872e7442e42ad26f71cd6bde55344f8
Oh, my bad. I had some old kernel version checked out. Please disregard.
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
>
> Thanks,
> John
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
2024-03-08 11:43 ` [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-10 20:17 ` Igor Pylypiv
2024-03-11 1:57 ` Jason Yan
2024-03-08 11:43 ` [PATCH v2 3/6] scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT John Garry
` (5 subsequent siblings)
7 siblings, 2 replies; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
Use standard template for scsi_host_template structure to reduce
duplication.
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
drivers/scsi/pm8001/pm8001_init.c | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index ed6b7d954dda..2ba320ff0d50 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -110,29 +110,11 @@ static void pm8001_map_queues(struct Scsi_Host *shost)
* The main structure which LLDD must register for scsi core.
*/
static const struct scsi_host_template pm8001_sht = {
- .module = THIS_MODULE,
- .name = DRV_NAME,
- .proc_name = DRV_NAME,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
- .slave_configure = sas_slave_configure,
+ LIBSAS_SHT_BASE
.scan_finished = pm8001_scan_finished,
.scan_start = pm8001_scan_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
.can_queue = 1,
- .this_id = -1,
.sg_tablesize = PM8001_MAX_DMA_SG,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
- .slave_alloc = sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.shost_groups = pm8001_host_groups,
.track_queue_depth = 1,
.cmd_per_lun = 32,
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE John Garry
@ 2024-03-10 20:17 ` Igor Pylypiv
2024-03-11 1:57 ` Jason Yan
1 sibling, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:17 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:35AM +0000, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/scsi/pm8001/pm8001_init.c | 20 +-------------------
> 1 file changed, 1 insertion(+), 19 deletions(-)
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE John Garry
2024-03-10 20:17 ` Igor Pylypiv
@ 2024-03-11 1:57 ` Jason Yan
1 sibling, 0 replies; 20+ messages in thread
From: Jason Yan @ 2024-03-11 1:57 UTC (permalink / raw)
To: John Garry, jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel
On 2024/3/8 19:43, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Signed-off-by: John Garry<john.g.garry@oracle.com>
> ---
> drivers/scsi/pm8001/pm8001_init.c | 20 +-------------------
> 1 file changed, 1 insertion(+), 19 deletions(-)
Reviewed-by: Jason Yan <yanaijie@huawei.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 3/6] scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
2024-03-08 11:43 ` [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE John Garry
2024-03-08 11:43 ` [PATCH v2 2/6] scsi: pm8001: Use LIBSAS_SHT_BASE John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-10 20:19 ` Igor Pylypiv
2024-03-08 11:43 ` [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE John Garry
` (4 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
Use standard template for scsi_host_template structure to reduce
duplication.
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 18 +-----------------
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 18 +-----------------
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 18 +-----------------
3 files changed, 3 insertions(+), 51 deletions(-)
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
index 3c555579f9a1..161feae3acab 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
@@ -1735,28 +1735,12 @@ static struct attribute *host_v1_hw_attrs[] = {
ATTRIBUTE_GROUPS(host_v1_hw);
static const struct scsi_host_template sht_v1_hw = {
- .name = DRV_NAME,
- .proc_name = DRV_NAME,
- .module = THIS_MODULE,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
+ LIBSAS_SHT_BASE_NO_SLAVE_INIT
.slave_configure = hisi_sas_slave_configure,
.scan_finished = hisi_sas_scan_finished,
.scan_start = hisi_sas_scan_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
- .this_id = -1,
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
.slave_alloc = hisi_sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.shost_groups = host_v1_hw_groups,
.host_reset = hisi_sas_host_reset,
};
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
index 73b378837da7..b8646f6e4c6d 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -3562,28 +3562,12 @@ static void map_queues_v2_hw(struct Scsi_Host *shost)
}
static const struct scsi_host_template sht_v2_hw = {
- .name = DRV_NAME,
- .proc_name = DRV_NAME,
- .module = THIS_MODULE,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
+ LIBSAS_SHT_BASE_NO_SLAVE_INIT
.slave_configure = hisi_sas_slave_configure,
.scan_finished = hisi_sas_scan_finished,
.scan_start = hisi_sas_scan_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
- .this_id = -1,
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
.slave_alloc = hisi_sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.shost_groups = host_v2_hw_groups,
.host_reset = hisi_sas_host_reset,
.map_queues = map_queues_v2_hw,
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
index 7d2a33514538..16ef89002fd4 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -3315,30 +3315,14 @@ static void hisi_sas_map_queues(struct Scsi_Host *shost)
}
static const struct scsi_host_template sht_v3_hw = {
- .name = DRV_NAME,
- .proc_name = DRV_NAME,
- .module = THIS_MODULE,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
+ LIBSAS_SHT_BASE_NO_SLAVE_INIT
.slave_configure = slave_configure_v3_hw,
.scan_finished = hisi_sas_scan_finished,
.scan_start = hisi_sas_scan_start,
.map_queues = hisi_sas_map_queues,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
- .this_id = -1,
.sg_tablesize = HISI_SAS_SGE_PAGE_CNT,
.sg_prot_tablesize = HISI_SAS_SGE_PAGE_CNT,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
.slave_alloc = hisi_sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.shost_groups = host_v3_hw_groups,
.tag_alloc_policy = BLK_TAG_ALLOC_RR,
.host_reset = hisi_sas_host_reset,
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/6] scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT
2024-03-08 11:43 ` [PATCH v2 3/6] scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT John Garry
@ 2024-03-10 20:19 ` Igor Pylypiv
0 siblings, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:19 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:36AM +0000, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Reviewed-by: Jason Yan <yanaijie@huawei.com>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 18 +-----------------
> drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 18 +-----------------
> drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 18 +-----------------
> 3 files changed, 3 insertions(+), 51 deletions(-)
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
` (2 preceding siblings ...)
2024-03-08 11:43 ` [PATCH v2 3/6] scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-10 20:22 ` Igor Pylypiv
2024-03-08 11:43 ` [PATCH v2 5/6] scsi: mvsas: " John Garry
` (3 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
Use standard template for scsi_host_template structure to reduce
duplication.
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
drivers/scsi/aic94xx/aic94xx_init.c | 21 ++-------------------
1 file changed, 2 insertions(+), 19 deletions(-)
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 8a3340d8d7ad..53fe68124ff4 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -24,6 +24,7 @@
/* The format is "version.release.patchlevel" */
#define ASD_DRIVER_VERSION "1.0.3"
+#define DRV_NAME "aic94xx"
static int use_msi = 0;
module_param_named(use_msi, use_msi, int, S_IRUGO);
@@ -36,29 +37,11 @@ static int asd_scan_finished(struct Scsi_Host *, unsigned long);
static void asd_scan_start(struct Scsi_Host *);
static const struct scsi_host_template aic94xx_sht = {
- .module = THIS_MODULE,
- /* .name is initialized */
- .name = "aic94xx",
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
- .slave_configure = sas_slave_configure,
+ LIBSAS_SHT_BASE
.scan_finished = asd_scan_finished,
.scan_start = asd_scan_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
.can_queue = 1,
- .this_id = -1,
.sg_tablesize = SG_ALL,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
- .slave_alloc = sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.track_queue_depth = 1,
};
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE John Garry
@ 2024-03-10 20:22 ` Igor Pylypiv
0 siblings, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:22 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:37AM +0000, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Reviewed-by: Jason Yan <yanaijie@huawei.com>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/scsi/aic94xx/aic94xx_init.c | 21 ++-------------------
> 1 file changed, 2 insertions(+), 19 deletions(-)
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 5/6] scsi: mvsas: Use LIBSAS_SHT_BASE
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
` (3 preceding siblings ...)
2024-03-08 11:43 ` [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-10 20:24 ` Igor Pylypiv
2024-03-11 2:04 ` Jason Yan
2024-03-08 11:43 ` [PATCH v2 6/6] scsi: isci: " John Garry
` (2 subsequent siblings)
7 siblings, 2 replies; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
Use standard template for scsi_host_template structure to reduce
duplication.
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
drivers/scsi/mvsas/mv_init.c | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
index 43ebb331e216..fb81d267c9cc 100644
--- a/drivers/scsi/mvsas/mv_init.c
+++ b/drivers/scsi/mvsas/mv_init.c
@@ -30,28 +30,11 @@ static const struct attribute_group *mvst_host_groups[];
#define SOC_SAS_NUM 2
static const struct scsi_host_template mvs_sht = {
- .module = THIS_MODULE,
- .name = DRV_NAME,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
- .slave_configure = sas_slave_configure,
+ LIBSAS_SHT_BASE
.scan_finished = mvs_scan_finished,
.scan_start = mvs_scan_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
.can_queue = 1,
- .this_id = -1,
.sg_tablesize = SG_ALL,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
- .slave_alloc = sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
.shost_groups = mvst_host_groups,
.track_queue_depth = 1,
};
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 5/6] scsi: mvsas: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 5/6] scsi: mvsas: " John Garry
@ 2024-03-10 20:24 ` Igor Pylypiv
2024-03-11 2:04 ` Jason Yan
1 sibling, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:24 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:38AM +0000, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/scsi/mvsas/mv_init.c | 19 +------------------
> 1 file changed, 1 insertion(+), 18 deletions(-)
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
>
> diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
> index 43ebb331e216..fb81d267c9cc 100644
> --- a/drivers/scsi/mvsas/mv_init.c
> +++ b/drivers/scsi/mvsas/mv_init.c
> @@ -30,28 +30,11 @@ static const struct attribute_group *mvst_host_groups[];
> #define SOC_SAS_NUM 2
>
> static const struct scsi_host_template mvs_sht = {
> - .module = THIS_MODULE,
> - .name = DRV_NAME,
> - .queuecommand = sas_queuecommand,
> - .dma_need_drain = ata_scsi_dma_need_drain,
> - .target_alloc = sas_target_alloc,
> - .slave_configure = sas_slave_configure,
> + LIBSAS_SHT_BASE
> .scan_finished = mvs_scan_finished,
> .scan_start = mvs_scan_start,
> - .change_queue_depth = sas_change_queue_depth,
> - .bios_param = sas_bios_param,
> .can_queue = 1,
> - .this_id = -1,
> .sg_tablesize = SG_ALL,
> - .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
> - .eh_device_reset_handler = sas_eh_device_reset_handler,
> - .eh_target_reset_handler = sas_eh_target_reset_handler,
> - .slave_alloc = sas_slave_alloc,
> - .target_destroy = sas_target_destroy,
> - .ioctl = sas_ioctl,
> -#ifdef CONFIG_COMPAT
> - .compat_ioctl = sas_ioctl,
> -#endif
> .shost_groups = mvst_host_groups,
> .track_queue_depth = 1,
> };
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 5/6] scsi: mvsas: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 5/6] scsi: mvsas: " John Garry
2024-03-10 20:24 ` Igor Pylypiv
@ 2024-03-11 2:04 ` Jason Yan
1 sibling, 0 replies; 20+ messages in thread
From: Jason Yan @ 2024-03-11 2:04 UTC (permalink / raw)
To: John Garry, jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel
On 2024/3/8 19:43, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Signed-off-by: John Garry<john.g.garry@oracle.com>
> ---
> drivers/scsi/mvsas/mv_init.c | 19 +------------------
> 1 file changed, 1 insertion(+), 18 deletions(-)
Reviewed-by: Jason Yan <yanaijie@huawei.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 6/6] scsi: isci: Use LIBSAS_SHT_BASE
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
` (4 preceding siblings ...)
2024-03-08 11:43 ` [PATCH v2 5/6] scsi: mvsas: " John Garry
@ 2024-03-08 11:43 ` John Garry
2024-03-10 20:25 ` Igor Pylypiv
2024-03-11 1:46 ` [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas Jason Yan
2024-03-25 20:11 ` Martin K. Petersen
7 siblings, 1 reply; 20+ messages in thread
From: John Garry @ 2024-03-08 11:43 UTC (permalink / raw)
To: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel, John Garry
Use standard template for scsi_host_template structure to reduce
duplication.
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
drivers/scsi/isci/init.c | 23 ++---------------------
1 file changed, 2 insertions(+), 21 deletions(-)
diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
index c582a3932cea..2b29e8505987 100644
--- a/drivers/scsi/isci/init.c
+++ b/drivers/scsi/isci/init.c
@@ -150,31 +150,12 @@ static struct attribute *isci_host_attrs[] = {
ATTRIBUTE_GROUPS(isci_host);
static const struct scsi_host_template isci_sht = {
-
- .module = THIS_MODULE,
- .name = DRV_NAME,
- .proc_name = DRV_NAME,
- .queuecommand = sas_queuecommand,
- .dma_need_drain = ata_scsi_dma_need_drain,
- .target_alloc = sas_target_alloc,
- .slave_configure = sas_slave_configure,
+ LIBSAS_SHT_BASE
.scan_finished = isci_host_scan_finished,
.scan_start = isci_host_start,
- .change_queue_depth = sas_change_queue_depth,
- .bios_param = sas_bios_param,
.can_queue = ISCI_CAN_QUEUE_VAL,
- .this_id = -1,
.sg_tablesize = SG_ALL,
- .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
- .eh_abort_handler = sas_eh_abort_handler,
- .eh_device_reset_handler = sas_eh_device_reset_handler,
- .eh_target_reset_handler = sas_eh_target_reset_handler,
- .slave_alloc = sas_slave_alloc,
- .target_destroy = sas_target_destroy,
- .ioctl = sas_ioctl,
-#ifdef CONFIG_COMPAT
- .compat_ioctl = sas_ioctl,
-#endif
+ .eh_abort_handler = sas_eh_abort_handler,
.shost_groups = isci_host_groups,
.track_queue_depth = 1,
};
--
2.31.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 6/6] scsi: isci: Use LIBSAS_SHT_BASE
2024-03-08 11:43 ` [PATCH v2 6/6] scsi: isci: " John Garry
@ 2024-03-10 20:25 ` Igor Pylypiv
0 siblings, 0 replies; 20+ messages in thread
From: Igor Pylypiv @ 2024-03-10 20:25 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, cassel, linux-scsi,
linux-kernel
On Fri, Mar 08, 2024 at 11:43:39AM +0000, John Garry wrote:
> Use standard template for scsi_host_template structure to reduce
> duplication.
>
> Reviewed-by: Jason Yan <yanaijie@huawei.com>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/scsi/isci/init.c | 23 ++---------------------
> 1 file changed, 2 insertions(+), 21 deletions(-)
>
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Thanks,
Igor
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
` (5 preceding siblings ...)
2024-03-08 11:43 ` [PATCH v2 6/6] scsi: isci: " John Garry
@ 2024-03-11 1:46 ` Jason Yan
2024-03-11 7:41 ` John Garry
2024-03-25 20:11 ` Martin K. Petersen
7 siblings, 1 reply; 20+ messages in thread
From: Jason Yan @ 2024-03-11 1:46 UTC (permalink / raw)
To: John Garry, jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel
Hi John,
On 2024/3/8 19:43, John Garry wrote:
> There is much duplication in the scsi_host_template structure for the
> drivers which use libsas.
>
> Similar to how a standard template is used in libata with __ATA_BASE_SHT,
> create a standard template in LIBSAS_SHT_BASE.
>
> Based on following:
> b914227e4215 (tag: mkp-scsi-staging, mkp-scsi/staging, mkp-scsi/for-next, mkp-scsi/6.9/scsi-staging) Merge patch series "Pass data lifetime information to SCSI disk devices"
>
> Differences to v1:
> - tidy libsas.h change (Jason)
> - Don't set eh_abort_handler in LIBSAS_SHT_BASE (Jason)
> - Remove sg_tablesize in LIBSAS_SHT_BASE, as W=1 build dislikes it
I cannot find sg_tablesize in LIBSAS_SHT_BASE in v1, did I misssed anything?
Thanks,
Jason
> - Add some RB tags (Thanks)
>
> John Garry (6):
> scsi: libsas: Add LIBSAS_SHT_BASE
> scsi: pm8001: Use LIBSAS_SHT_BASE
> scsi: hisi_sas: Use LIBSAS_SHT_BASE_NO_SLAVE_INIT
> scsi: aic94xx: Use LIBSAS_SHT_BASE
> scsi: mvsas: Use LIBSAS_SHT_BASE
> scsi: isci: Use LIBSAS_SHT_BASE
>
> drivers/scsi/aic94xx/aic94xx_init.c | 21 ++-----------------
> drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 18 +---------------
> drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 18 +---------------
> drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 18 +---------------
> drivers/scsi/isci/init.c | 23 ++------------------
> drivers/scsi/mvsas/mv_init.c | 19 +----------------
> drivers/scsi/pm8001/pm8001_init.c | 20 +-----------------
> include/scsi/libsas.h | 29 ++++++++++++++++++++++++++
> 8 files changed, 38 insertions(+), 128 deletions(-)
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas
2024-03-11 1:46 ` [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas Jason Yan
@ 2024-03-11 7:41 ` John Garry
0 siblings, 0 replies; 20+ messages in thread
From: John Garry @ 2024-03-11 7:41 UTC (permalink / raw)
To: Jason Yan, jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, dlemoal, ipylypiv, cassel
Cc: linux-scsi, linux-kernel
On 11/03/2024 01:46, Jason Yan wrote:
>> - Remove sg_tablesize in LIBSAS_SHT_BASE, as W=1 build dislikes it
>
> I cannot find sg_tablesize in LIBSAS_SHT_BASE in v1, did I misssed
> anything?
Ah, I think that I just had that change local but then decided to drop
it due to W=1 build issue.
Thanks for your eagle eye checking.
John
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas
2024-03-08 11:43 [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas John Garry
` (6 preceding siblings ...)
2024-03-11 1:46 ` [PATCH v2 0/6] Add LIBSAS_SHT_BASE for libsas Jason Yan
@ 2024-03-25 20:11 ` Martin K. Petersen
7 siblings, 0 replies; 20+ messages in thread
From: Martin K. Petersen @ 2024-03-25 20:11 UTC (permalink / raw)
To: John Garry
Cc: jejb, martin.petersen, chenxiang66, jinpu.wang,
artur.paszkiewicz, yanaijie, dlemoal, ipylypiv, cassel,
linux-scsi, linux-kernel
John,
> There is much duplication in the scsi_host_template structure for the
> drivers which use libsas.
>
> Similar to how a standard template is used in libata with
> __ATA_BASE_SHT, create a standard template in LIBSAS_SHT_BASE.
Applied to 6.10/scsi-staging, thanks!
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 20+ messages in thread