scsi: ufs: core: Use readable 'return 0' in ufshcd_hba_capabilities()

Message ID 20230502113116epcms2p7b83da0d683e29f667c38f5430b985388@epcms2p7
State New
Headers
Series scsi: ufs: core: Use readable 'return 0' in ufshcd_hba_capabilities() |

Commit Message

Keoseong Park May 2, 2023, 11:31 a.m. UTC
  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 <keosung.park@samsung.com>
---
 drivers/ufs/core/ufshcd.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
  

Comments

Bart Van Assche May 2, 2023, 8:28 p.m. UTC | #1
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 <keosung.park@samsung.com>
> ---
>   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.
  
Keoseong Park May 3, 2023, 6:50 a.m. UTC | #2
>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 <keosung.park@samsung.com>
>> ---
>>   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.
  

Patch

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;
 }
 
 /**