2023-05-02 11:42:13

by Keoseong Park

[permalink] [raw]
Subject: [PATCH] scsi: ufs: core: Use readable 'return 0' in ufshcd_hba_capabilities()

The 'err' variable is the result of ufshcd_hba_init_crypto_capabilities()
regardless of MCQ capabilities. Return 'err' immediately when the function
error occurs. And if it is not an error, explicitly return 0.

Anyway, if ufshcd_hba_init_crypto_capabilities() returns error, MCQ
capabilities is not used because it fails to initialize UFS driver.

Signed-off-by: Keoseong Park <[email protected]>
---
drivers/ufs/core/ufshcd.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 9434328ba323..44328eb4158d 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -2343,18 +2343,20 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)

/* Read crypto capabilities */
err = ufshcd_hba_init_crypto_capabilities(hba);
- if (err)
+ if (err) {
dev_err(hba->dev, "crypto setup failed\n");
+ return err;
+ }

hba->mcq_sup = FIELD_GET(MASK_MCQ_SUPPORT, hba->capabilities);
if (!hba->mcq_sup)
- return err;
+ return 0;

hba->mcq_capabilities = ufshcd_readl(hba, REG_MCQCAP);
hba->ext_iid_sup = FIELD_GET(MASK_EXT_IID_SUPPORT,
hba->mcq_capabilities);

- return err;
+ return 0;
}

/**
--
2.17.1


2023-05-02 20:52:19

by Bart Van Assche

[permalink] [raw]
Subject: Re: [PATCH] scsi: ufs: core: Use readable 'return 0' in ufshcd_hba_capabilities()

On 5/2/23 04:31, Keoseong Park wrote:
> The 'err' variable is the result of ufshcd_hba_init_crypto_capabilities()
> regardless of MCQ capabilities. Return 'err' immediately when the function
> error occurs. And if it is not an error, explicitly return 0.
>
> Anyway, if ufshcd_hba_init_crypto_capabilities() returns error, MCQ
> capabilities is not used because it fails to initialize UFS driver.
>
> Signed-off-by: Keoseong Park <[email protected]>
> ---
> drivers/ufs/core/ufshcd.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 9434328ba323..44328eb4158d 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -2343,18 +2343,20 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)
>
> /* Read crypto capabilities */
> err = ufshcd_hba_init_crypto_capabilities(hba);
> - if (err)
> + if (err) {
> dev_err(hba->dev, "crypto setup failed\n");
> + return err;
> + }
>
> hba->mcq_sup = FIELD_GET(MASK_MCQ_SUPPORT, hba->capabilities);
> if (!hba->mcq_sup)
> - return err;
> + return 0;
>
> hba->mcq_capabilities = ufshcd_readl(hba, REG_MCQCAP);
> hba->ext_iid_sup = FIELD_GET(MASK_EXT_IID_SUPPORT,
> hba->mcq_capabilities);
>
> - return err;
> + return 0;
> }

The most important change in this patch is that ufshcd_hba_capabilities()
returns earlier if ufshcd_hba_init_crypto_capabilities() fails. Please
change the patch title such that it reflects this change instead of the
other less important change.

Thanks,

Bart.

2023-05-03 06:57:57

by Keoseong Park

[permalink] [raw]
Subject: RE:(2) [PATCH] scsi: ufs: core: Use readable 'return 0' in ufshcd_hba_capabilities()

>On 5/2/23 04:31, Keoseong Park wrote:
>> The 'err' variable is the result of ufshcd_hba_init_crypto_capabilities()
>> regardless of MCQ capabilities. Return 'err' immediately when the function
>> error occurs. And if it is not an error, explicitly return 0.
>>
>> Anyway, if ufshcd_hba_init_crypto_capabilities() returns error, MCQ
>> capabilities is not used because it fails to initialize UFS driver.
>>
>> Signed-off-by: Keoseong Park <[email protected]>
>> ---
>> drivers/ufs/core/ufshcd.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
>> index 9434328ba323..44328eb4158d 100644
>> --- a/drivers/ufs/core/ufshcd.c
>> +++ b/drivers/ufs/core/ufshcd.c
>> @@ -2343,18 +2343,20 @@ static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)
>>
>> /* Read crypto capabilities */
>> err = ufshcd_hba_init_crypto_capabilities(hba);
>> - if (err)
>> + if (err) {
>> dev_err(hba->dev, "crypto setup failed\n");
>> + return err;
>> + }
>>
>> hba->mcq_sup = FIELD_GET(MASK_MCQ_SUPPORT, hba->capabilities);
>> if (!hba->mcq_sup)
>> - return err;
>> + return 0;
>>
>> hba->mcq_capabilities = ufshcd_readl(hba, REG_MCQCAP);
>> hba->ext_iid_sup = FIELD_GET(MASK_EXT_IID_SUPPORT,
>> hba->mcq_capabilities);
>>
>> - return err;
>> + return 0;
>> }
>
>The most important change in this patch is that ufshcd_hba_capabilities()
>returns earlier if ufshcd_hba_init_crypto_capabilities() fails. Please
>change the patch title such that it reflects this change instead of the
>other less important change.

OK, I will change it.

Best Regards,
Keoseong

>
>Thanks,
>
>Bart.