diff mbox series

[3/5] powerpc/lib: checksum GUAP support

Message ID 20181026063513.30806-4-ruscur@russell.cc (mailing list archive)
State Superseded
Headers show
Series Guarded Userspace Access Prevention on Radix | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success next/apply_patch Successfully applied
snowpatch_ozlabs/checkpatch success Test checkpatch on branch next

Commit Message

Russell Currey Oct. 26, 2018, 6:35 a.m. UTC
Wrap the checksumming code in GUAP locks and unlocks.

Signed-off-by: Russell Currey <ruscur@russell.cc>
---
 arch/powerpc/lib/checksum_wrappers.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Christophe Leroy Oct. 26, 2018, 4:33 p.m. UTC | #1
Same comment as for futex

Christophe

Russell Currey <ruscur@russell.cc> a écrit :

> Wrap the checksumming code in GUAP locks and unlocks.
>
> Signed-off-by: Russell Currey <ruscur@russell.cc>
> ---
>  arch/powerpc/lib/checksum_wrappers.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/arch/powerpc/lib/checksum_wrappers.c  
> b/arch/powerpc/lib/checksum_wrappers.c
> index a0cb63fb76a1..c67db0a6e18b 100644
> --- a/arch/powerpc/lib/checksum_wrappers.c
> +++ b/arch/powerpc/lib/checksum_wrappers.c
> @@ -28,6 +28,7 @@ __wsum csum_and_copy_from_user(const void __user  
> *src, void *dst,
>  {
>  	unsigned int csum;
>
> +	unlock_user_access();
>  	might_sleep();
>
>  	*err_ptr = 0;
> @@ -60,6 +61,7 @@ __wsum csum_and_copy_from_user(const void __user  
> *src, void *dst,
>  	}
>
>  out:
> +	lock_user_access();
>  	return (__force __wsum)csum;
>  }
>  EXPORT_SYMBOL(csum_and_copy_from_user);
> @@ -69,6 +71,7 @@ __wsum csum_and_copy_to_user(const void *src, void  
> __user *dst, int len,
>  {
>  	unsigned int csum;
>
> +	unlock_user_access();
>  	might_sleep();
>
>  	*err_ptr = 0;
> @@ -97,6 +100,7 @@ __wsum csum_and_copy_to_user(const void *src,  
> void __user *dst, int len,
>  	}
>
>  out:
> +	lock_user_access();
>  	return (__force __wsum)csum;
>  }
>  EXPORT_SYMBOL(csum_and_copy_to_user);
> --
> 2.19.1
diff mbox series

Patch

diff --git a/arch/powerpc/lib/checksum_wrappers.c b/arch/powerpc/lib/checksum_wrappers.c
index a0cb63fb76a1..c67db0a6e18b 100644
--- a/arch/powerpc/lib/checksum_wrappers.c
+++ b/arch/powerpc/lib/checksum_wrappers.c
@@ -28,6 +28,7 @@  __wsum csum_and_copy_from_user(const void __user *src, void *dst,
 {
 	unsigned int csum;
 
+	unlock_user_access();
 	might_sleep();
 
 	*err_ptr = 0;
@@ -60,6 +61,7 @@  __wsum csum_and_copy_from_user(const void __user *src, void *dst,
 	}
 
 out:
+	lock_user_access();
 	return (__force __wsum)csum;
 }
 EXPORT_SYMBOL(csum_and_copy_from_user);
@@ -69,6 +71,7 @@  __wsum csum_and_copy_to_user(const void *src, void __user *dst, int len,
 {
 	unsigned int csum;
 
+	unlock_user_access();
 	might_sleep();
 
 	*err_ptr = 0;
@@ -97,6 +100,7 @@  __wsum csum_and_copy_to_user(const void *src, void __user *dst, int len,
 	}
 
 out:
+	lock_user_access();
 	return (__force __wsum)csum;
 }
 EXPORT_SYMBOL(csum_and_copy_to_user);