lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 20 Oct 2022 11:03:33 -0700 From: Asutosh Das <quic_asutoshd@...cinc.com> To: <quic_cang@...cinc.com>, <martin.petersen@...cle.com>, <linux-scsi@...r.kernel.org> CC: <quic_nguyenb@...cinc.com>, <quic_xiaosenh@...cinc.com>, <stanley.chu@...iatek.com>, <eddie.huang@...iatek.com>, <daejun7.park@...sung.com>, <bvanassche@....org>, <avri.altman@....com>, <mani@...nel.org>, <beanhuo@...ron.com>, <quic_richardp@...cinc.com>, "Asutosh Das" <quic_asutoshd@...cinc.com>, <linux-arm-msm@...r.kernel.org>, Alim Akhtar <alim.akhtar@...sung.com>, "James E.J. Bottomley" <jejb@...ux.ibm.com>, "open list" <linux-kernel@...r.kernel.org> Subject: [PATCH v3 04/17] ufs: core: Defer adding host to scsi if mcq is supported If MCQ support is present, then enabling it would need reallocating tags and memory. It would also free up the already allocated memory in Single Doorbell Mode. So defer invoking scsi_add_host() until MCQ is configured. Co-developed-by: Can Guo <quic_cang@...cinc.com> Signed-off-by: Can Guo <quic_cang@...cinc.com> Signed-off-by: Asutosh Das <quic_asutoshd@...cinc.com> --- drivers/ufs/core/ufshcd.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 8d93797..fe4b683 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -8187,6 +8187,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params) int ret; unsigned long flags; ktime_t start = ktime_get(); + struct Scsi_Host *host = hba->host; hba->ufshcd_state = UFSHCD_STATE_RESET; @@ -8221,6 +8222,14 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params) ret = ufshcd_device_params_init(hba); if (ret) goto out; + + if (is_mcq_supported(hba)) { + ret = scsi_add_host(host, hba->dev); + if (ret) { + dev_err(hba->dev, "scsi_add_host failed\n"); + goto out; + } + } } ufshcd_tune_unipro_params(hba); @@ -9767,10 +9776,12 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) hba->is_irq_enabled = true; } - err = scsi_add_host(host, hba->dev); - if (err) { - dev_err(hba->dev, "scsi_add_host failed\n"); - goto out_disable; + 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->tmf_tag_set = (struct blk_mq_tag_set) { -- 2.7.4
Powered by blists - more mailing lists