From: Igor Pylypiv <ipylypiv@google.com>
To: John Garry <john.g.garry@oracle.com>
Cc: jejb@linux.ibm.com, martin.petersen@oracle.com,
chenxiang66@hisilicon.com, jinpu.wang@cloud.ionos.com,
artur.paszkiewicz@intel.com, yanaijie@huawei.com,
dlemoal@kernel.org, cassel@kernel.org,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/6] scsi: libsas: Add LIBSAS_SHT_BASE
Date: Fri, 8 Mar 2024 11:41:38 -0800 [thread overview]
Message-ID: <Zetp8ufVfxxo6DOF@google.com> (raw)
In-Reply-To: <20240308114339.1340549-2-john.g.garry@oracle.com>
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
>
next prev parent reply other threads:[~2024-03-08 19:41 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
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 19:41 ` Igor Pylypiv [this message]
2024-03-10 10:02 ` John Garry
2024-03-10 20:05 ` Igor Pylypiv
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
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
2024-03-08 11:43 ` [PATCH v2 4/6] scsi: aic94xx: Use LIBSAS_SHT_BASE John Garry
2024-03-10 20:22 ` Igor Pylypiv
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
2024-03-08 11:43 ` [PATCH v2 6/6] scsi: isci: " 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-11 7:41 ` John Garry
2024-03-25 20:11 ` Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zetp8ufVfxxo6DOF@google.com \
--to=ipylypiv@google.com \
--cc=artur.paszkiewicz@intel.com \
--cc=cassel@kernel.org \
--cc=chenxiang66@hisilicon.com \
--cc=dlemoal@kernel.org \
--cc=jejb@linux.ibm.com \
--cc=jinpu.wang@cloud.ionos.com \
--cc=john.g.garry@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=yanaijie@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.