All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Yan <yanaijie@huawei.com>
To: <martin.petersen@oracle.com>, <jejb@linux.ibm.com>
Cc: <linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<hare@suse.com>, <hch@lst.de>, <bvanassche@acm.org>,
	<john.garry@huawei.com>, <jinpu.wang@cloud.ionos.com>,
	<damien.lemoal@opensource.wdc.com>,
	Jason Yan <yanaijie@huawei.com>, Jack Wang <jinpu.wang@ionos.com>
Subject: [PATCH v6 2/8] scsi: libsas: introduce sas_find_attached_phy_id() helper
Date: Wed, 28 Sep 2022 15:01:24 +0800	[thread overview]
Message-ID: <20220928070130.3657183-3-yanaijie@huawei.com> (raw)
In-Reply-To: <20220928070130.3657183-1-yanaijie@huawei.com>

LLDDs are implementing their own attached phy id finding code repeatedly.
Factor it out to libsas.

Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: John Garry <john.garry@huawei.com>
---
 drivers/scsi/libsas/sas_expander.c | 16 ++++++++++++++++
 include/scsi/libsas.h              |  2 ++
 2 files changed, 18 insertions(+)

diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index fa2209080cc2..2caf366b9f74 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -2107,6 +2107,22 @@ int sas_ex_revalidate_domain(struct domain_device *port_dev)
 	return res;
 }
 
+int sas_find_attached_phy_id(struct expander_device *ex_dev,
+			     struct domain_device *dev)
+{
+	struct ex_phy *phy;
+	int phy_id;
+
+	for (phy_id = 0; phy_id < ex_dev->num_phys; phy_id++) {
+		phy = &ex_dev->ex_phy[phy_id];
+		if (sas_phy_match_dev_addr(dev, phy))
+			return phy_id;
+	}
+
+	return -ENODEV;
+}
+EXPORT_SYMBOL_GPL(sas_find_attached_phy_id);
+
 void sas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
 		struct sas_rphy *rphy)
 {
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 2dbead74a2af..ec08008b919c 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -750,6 +750,8 @@ int sas_clear_task_set(struct domain_device *dev, u8 *lun);
 int sas_lu_reset(struct domain_device *dev, u8 *lun);
 int sas_query_task(struct sas_task *task, u16 tag);
 int sas_abort_task(struct sas_task *task, u16 tag);
+int sas_find_attached_phy_id(struct expander_device *ex_dev,
+			     struct domain_device *dev);
 
 void sas_notify_port_event(struct asd_sas_phy *phy, enum port_event event,
 			   gfp_t gfp_flags);
-- 
2.31.1


  parent reply	other threads:[~2022-09-28  6:39 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28  7:01 [PATCH v6 0/8] scsi: libsas: sas address comparison refactor Jason Yan
2022-09-28  7:01 ` [PATCH v6 1/8] scsi: libsas: introduce sas address comparison helpers Jason Yan
2022-09-28  7:25   ` Johannes Thumshirn
2022-09-28  7:01 ` Jason Yan [this message]
2022-09-28  7:26   ` [PATCH v6 2/8] scsi: libsas: introduce sas_find_attached_phy_id() helper Johannes Thumshirn
2022-09-28  7:01 ` [PATCH v6 3/8] scsi: pm8001: use sas_find_attached_phy_id() instead of open coded Jason Yan
2022-09-28  7:02   ` Damien Le Moal
2022-09-28  7:29     ` Jason Yan
2022-09-28  7:27   ` Johannes Thumshirn
2022-09-28  7:01 ` [PATCH v6 4/8] scsi: mvsas: " Jason Yan
2022-09-28  7:27   ` Johannes Thumshirn
2022-09-28  7:01 ` [PATCH v6 5/8] scsi: hisi_sas: use sas_find_attathed_phy_id() " Jason Yan
2022-09-28  7:27   ` Johannes Thumshirn
2022-09-28  7:58   ` John Garry
2022-09-28  7:01 ` [PATCH v6 6/8] scsi: libsas: use sas_phy_match_dev_addr() " Jason Yan
2022-09-28  7:37   ` Johannes Thumshirn
2022-09-28  7:01 ` [PATCH v6 7/8] scsi: libsas: use sas_phy_addr_match() " Jason Yan
2022-09-28  7:38   ` Johannes Thumshirn
2022-09-28  7:01 ` [PATCH v6 8/8] scsi: libsas: use sas_phy_match_port_addr() " Jason Yan
2022-09-28  7:38   ` Johannes Thumshirn
2022-10-18  3:28 ` [PATCH v6 0/8] scsi: libsas: sas address comparison refactor Martin K. Petersen
2022-10-22  3:52 ` 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=20220928070130.3657183-3-yanaijie@huawei.com \
    --to=yanaijie@huawei.com \
    --cc=bvanassche@acm.org \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=hare@suse.com \
    --cc=hch@lst.de \
    --cc=jejb@linux.ibm.com \
    --cc=jinpu.wang@cloud.ionos.com \
    --cc=jinpu.wang@ionos.com \
    --cc=john.garry@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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.