public inbox for linux-crypto@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] crypto: ccp: Use scoped guard for mutex
@ 2024-12-03 16:22 Mario Limonciello
  2024-12-11 16:08 ` Tom Lendacky
  2024-12-14  9:28 ` Herbert Xu
  0 siblings, 2 replies; 3+ messages in thread
From: Mario Limonciello @ 2024-12-03 16:22 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Mario Limonciello, Tom Lendacky, John Allen,
	open list:AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - DB...,
	open list

Use a scoped guard to simplify the cleanup handling.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v3:
 * Fix logic error
---
 drivers/crypto/ccp/dbc.c | 53 +++++++++++++++-------------------------
 1 file changed, 20 insertions(+), 33 deletions(-)

diff --git a/drivers/crypto/ccp/dbc.c b/drivers/crypto/ccp/dbc.c
index 5b105a23f6997..410084a9039c9 100644
--- a/drivers/crypto/ccp/dbc.c
+++ b/drivers/crypto/ccp/dbc.c
@@ -7,6 +7,8 @@
  * Author: Mario Limonciello <mario.limonciello@amd.com>
  */
 
+#include <linux/mutex.h>
+
 #include "dbc.h"
 
 #define DBC_DEFAULT_TIMEOUT		(10 * MSEC_PER_SEC)
@@ -137,64 +139,49 @@ static long dbc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 		return -ENODEV;
 	dbc_dev = psp_master->dbc_data;
 
-	mutex_lock(&dbc_dev->ioctl_mutex);
+	guard(mutex)(&dbc_dev->ioctl_mutex);
 
 	switch (cmd) {
 	case DBCIOCNONCE:
-		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_nonce))) {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_nonce)))
+			return -EFAULT;
 
 		ret = send_dbc_nonce(dbc_dev);
 		if (ret)
-			goto unlock;
+			return ret;
 
-		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_nonce))) {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_nonce)))
+			return -EFAULT;
 		break;
 	case DBCIOCUID:
-		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_setuid))) {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_setuid)))
+			return -EFAULT;
 
 		*dbc_dev->payload_size = dbc_dev->header_size + sizeof(struct dbc_user_setuid);
 		ret = send_dbc_cmd(dbc_dev, PSP_DYNAMIC_BOOST_SET_UID);
 		if (ret)
-			goto unlock;
+			return ret;
 
-		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_setuid))) {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_setuid)))
+			return -EFAULT;
 		break;
 	case DBCIOCPARAM:
-		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_param))) {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_param)))
+			return -EFAULT;
 
 		*dbc_dev->payload_size = dbc_dev->header_size + sizeof(struct dbc_user_param);
 		ret = send_dbc_parameter(dbc_dev);
 		if (ret)
-			goto unlock;
+			return ret;
 
-		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_param)))  {
-			ret = -EFAULT;
-			goto unlock;
-		}
+		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_param)))
+			return -EFAULT;
 		break;
 	default:
-		ret = -EINVAL;
-
+		return -EINVAL;
 	}
-unlock:
-	mutex_unlock(&dbc_dev->ioctl_mutex);
 
-	return ret;
+	return 0;
 }
 
 static const struct file_operations dbc_fops = {

base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] crypto: ccp: Use scoped guard for mutex
  2024-12-03 16:22 [PATCH v3] crypto: ccp: Use scoped guard for mutex Mario Limonciello
@ 2024-12-11 16:08 ` Tom Lendacky
  2024-12-14  9:28 ` Herbert Xu
  1 sibling, 0 replies; 3+ messages in thread
From: Tom Lendacky @ 2024-12-11 16:08 UTC (permalink / raw)
  To: Mario Limonciello, Herbert Xu
  Cc: John Allen,
	open list:AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - DB...,
	open list

On 12/3/24 10:22, Mario Limonciello wrote:
> Use a scoped guard to simplify the cleanup handling.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>

> ---
> v3:
>  * Fix logic error
> ---
>  drivers/crypto/ccp/dbc.c | 53 +++++++++++++++-------------------------
>  1 file changed, 20 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/crypto/ccp/dbc.c b/drivers/crypto/ccp/dbc.c
> index 5b105a23f6997..410084a9039c9 100644
> --- a/drivers/crypto/ccp/dbc.c
> +++ b/drivers/crypto/ccp/dbc.c
> @@ -7,6 +7,8 @@
>   * Author: Mario Limonciello <mario.limonciello@amd.com>
>   */
>  
> +#include <linux/mutex.h>
> +
>  #include "dbc.h"
>  
>  #define DBC_DEFAULT_TIMEOUT		(10 * MSEC_PER_SEC)
> @@ -137,64 +139,49 @@ static long dbc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
>  		return -ENODEV;
>  	dbc_dev = psp_master->dbc_data;
>  
> -	mutex_lock(&dbc_dev->ioctl_mutex);
> +	guard(mutex)(&dbc_dev->ioctl_mutex);
>  
>  	switch (cmd) {
>  	case DBCIOCNONCE:
> -		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_nonce))) {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_nonce)))
> +			return -EFAULT;
>  
>  		ret = send_dbc_nonce(dbc_dev);
>  		if (ret)
> -			goto unlock;
> +			return ret;
>  
> -		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_nonce))) {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_nonce)))
> +			return -EFAULT;
>  		break;
>  	case DBCIOCUID:
> -		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_setuid))) {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_setuid)))
> +			return -EFAULT;
>  
>  		*dbc_dev->payload_size = dbc_dev->header_size + sizeof(struct dbc_user_setuid);
>  		ret = send_dbc_cmd(dbc_dev, PSP_DYNAMIC_BOOST_SET_UID);
>  		if (ret)
> -			goto unlock;
> +			return ret;
>  
> -		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_setuid))) {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_setuid)))
> +			return -EFAULT;
>  		break;
>  	case DBCIOCPARAM:
> -		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_param))) {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_from_user(dbc_dev->payload, argp, sizeof(struct dbc_user_param)))
> +			return -EFAULT;
>  
>  		*dbc_dev->payload_size = dbc_dev->header_size + sizeof(struct dbc_user_param);
>  		ret = send_dbc_parameter(dbc_dev);
>  		if (ret)
> -			goto unlock;
> +			return ret;
>  
> -		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_param)))  {
> -			ret = -EFAULT;
> -			goto unlock;
> -		}
> +		if (copy_to_user(argp, dbc_dev->payload, sizeof(struct dbc_user_param)))
> +			return -EFAULT;
>  		break;
>  	default:
> -		ret = -EINVAL;
> -
> +		return -EINVAL;
>  	}
> -unlock:
> -	mutex_unlock(&dbc_dev->ioctl_mutex);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static const struct file_operations dbc_fops = {
> 
> base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] crypto: ccp: Use scoped guard for mutex
  2024-12-03 16:22 [PATCH v3] crypto: ccp: Use scoped guard for mutex Mario Limonciello
  2024-12-11 16:08 ` Tom Lendacky
@ 2024-12-14  9:28 ` Herbert Xu
  1 sibling, 0 replies; 3+ messages in thread
From: Herbert Xu @ 2024-12-14  9:28 UTC (permalink / raw)
  To: Mario Limonciello
  Cc: Tom Lendacky, John Allen,
	open list:AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - DB...,
	open list

On Tue, Dec 03, 2024 at 10:22:57AM -0600, Mario Limonciello wrote:
> Use a scoped guard to simplify the cleanup handling.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v3:
>  * Fix logic error
> ---
>  drivers/crypto/ccp/dbc.c | 53 +++++++++++++++-------------------------
>  1 file changed, 20 insertions(+), 33 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-12-14  9:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-03 16:22 [PATCH v3] crypto: ccp: Use scoped guard for mutex Mario Limonciello
2024-12-11 16:08 ` Tom Lendacky
2024-12-14  9:28 ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox