From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org, Bart Van Assche <bvanassche@acm.org>,
Avri Altman <avri.altman@wdc.com>, Bean Huo <beanhuo@micron.com>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
Peter Wang <peter.wang@mediatek.com>,
Andrew Halaney <ahalaney@redhat.com>
Subject: [PATCH v4 01/10] scsi: ufs: core: Introduce ufshcd_add_scsi_host()
Date: Thu, 5 Sep 2024 15:01:27 -0700 [thread overview]
Message-ID: <20240905220214.738506-2-bvanassche@acm.org> (raw)
In-Reply-To: <20240905220214.738506-1-bvanassche@acm.org>
Move the code for adding a SCSI host and also the code for managing
TMF tags from ufshcd_init() into a new function called
ufshcd_add_scsi_host(). This patch prepares for combining the two
scsi_add_host() calls into a single call. No functionality has been
changed.
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/ufs/core/ufshcd.c | 84 ++++++++++++++++++++++++---------------
1 file changed, 53 insertions(+), 31 deletions(-)
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 8ea5a82503a9..ecf6da2efed1 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -10357,6 +10357,56 @@ static const struct blk_mq_ops ufshcd_tmf_ops = {
.queue_rq = ufshcd_queue_tmf,
};
+static int ufshcd_add_scsi_host(struct ufs_hba *hba)
+{
+ int err;
+
+ if (!is_mcq_supported(hba)) {
+ err = scsi_add_host(hba->host, hba->dev);
+ if (err) {
+ dev_err(hba->dev, "scsi_add_host failed\n");
+ return err;
+ }
+ hba->scsi_host_added = true;
+ }
+
+ hba->tmf_tag_set = (struct blk_mq_tag_set) {
+ .nr_hw_queues = 1,
+ .queue_depth = hba->nutmrs,
+ .ops = &ufshcd_tmf_ops,
+ .flags = BLK_MQ_F_NO_SCHED,
+ };
+ err = blk_mq_alloc_tag_set(&hba->tmf_tag_set);
+ if (err < 0)
+ goto remove_scsi_host;
+ hba->tmf_queue = blk_mq_alloc_queue(&hba->tmf_tag_set, NULL, NULL);
+ if (IS_ERR(hba->tmf_queue)) {
+ err = PTR_ERR(hba->tmf_queue);
+ goto free_tmf_tag_set;
+ }
+ hba->tmf_rqs = devm_kcalloc(hba->dev, hba->nutmrs,
+ sizeof(*hba->tmf_rqs), GFP_KERNEL);
+ if (!hba->tmf_rqs) {
+ err = -ENOMEM;
+ goto free_tmf_queue;
+ }
+
+ return 0;
+
+free_tmf_queue:
+ blk_mq_destroy_queue(hba->tmf_queue);
+ blk_put_queue(hba->tmf_queue);
+
+free_tmf_tag_set:
+ blk_mq_free_tag_set(&hba->tmf_tag_set);
+
+remove_scsi_host:
+ if (hba->scsi_host_added)
+ scsi_remove_host(hba->host);
+
+ return err;
+}
+
/**
* ufshcd_init - Driver initialization routine
* @hba: per-adapter instance
@@ -10488,35 +10538,9 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
hba->is_irq_enabled = true;
}
- if (!is_mcq_supported(hba)) {
- err = scsi_add_host(host, hba->dev);
- if (err) {
- dev_err(hba->dev, "scsi_add_host failed\n");
- goto out_disable;
- }
- hba->scsi_host_added = true;
- }
-
- hba->tmf_tag_set = (struct blk_mq_tag_set) {
- .nr_hw_queues = 1,
- .queue_depth = hba->nutmrs,
- .ops = &ufshcd_tmf_ops,
- .flags = BLK_MQ_F_NO_SCHED,
- };
- err = blk_mq_alloc_tag_set(&hba->tmf_tag_set);
- if (err < 0)
- goto out_remove_scsi_host;
- hba->tmf_queue = blk_mq_alloc_queue(&hba->tmf_tag_set, NULL, NULL);
- if (IS_ERR(hba->tmf_queue)) {
- err = PTR_ERR(hba->tmf_queue);
- goto free_tmf_tag_set;
- }
- hba->tmf_rqs = devm_kcalloc(hba->dev, hba->nutmrs,
- sizeof(*hba->tmf_rqs), GFP_KERNEL);
- if (!hba->tmf_rqs) {
- err = -ENOMEM;
- goto free_tmf_queue;
- }
+ err = ufshcd_add_scsi_host(hba);
+ if (err)
+ goto out_disable;
/* Reset the attached device */
ufshcd_device_reset(hba);
@@ -10574,9 +10598,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
free_tmf_queue:
blk_mq_destroy_queue(hba->tmf_queue);
blk_put_queue(hba->tmf_queue);
-free_tmf_tag_set:
blk_mq_free_tag_set(&hba->tmf_tag_set);
-out_remove_scsi_host:
if (hba->scsi_host_added)
scsi_remove_host(hba->host);
out_disable:
next prev parent reply other threads:[~2024-09-05 22:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 22:01 [PATCH v4 00/10] Simplify the UFS driver initialization code Bart Van Assche
2024-09-05 22:01 ` Bart Van Assche [this message]
2024-09-06 23:51 ` [PATCH v4 01/10] scsi: ufs: core: Introduce ufshcd_add_scsi_host() Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 02/10] scsi: ufs: core: Introduce ufshcd_activate_link() Bart Van Assche
2024-09-06 23:59 ` Bao D. Nguyen
2024-09-09 17:08 ` Bart Van Assche
2024-09-05 22:01 ` [PATCH v4 03/10] scsi: ufs: core: Introduce ufshcd_post_device_init() Bart Van Assche
2024-09-07 0:24 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 04/10] scsi: ufs: core: Call ufshcd_add_scsi_host() later Bart Van Assche
2024-09-07 10:52 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 05/10] scsi: ufs: core: Move the ufshcd_device_init() call Bart Van Assche
2024-09-07 11:12 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 06/10] scsi: ufs: core: Move the ufshcd_device_init(hba, true) call Bart Van Assche
2024-09-07 19:38 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 07/10] scsi: ufs: core: Expand " Bart Van Assche
2024-09-07 20:15 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 08/10] scsi: ufs: core: Move the MCQ scsi_add_host() call Bart Van Assche
2024-09-07 20:27 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 09/10] scsi: ufs: core: Move code out of an if-statement Bart Van Assche
2024-09-07 20:36 ` Bao D. Nguyen
2024-09-05 22:01 ` [PATCH v4 10/10] scsi: ufs: core: Remove the second argument of ufshcd_device_init() Bart Van Assche
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=20240905220214.738506-2-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=ahalaney@redhat.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=linux-scsi@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=peter.wang@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox