diff options
| author | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2020-09-11 20:00:20 -0400 |
|---|---|---|
| committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2020-09-11 20:00:20 -0400 |
| commit | 0ea8a56de21be24cb79abb03dee79aabcd60a316 (patch) | |
| tree | 71ad6c51064e4948b5c90e84c86da52457e2cfb2 /include/linux/uaccess.h | |
| parent | 0560c2173e3f12bc39ef5d61b26d43307cab8694 (diff) | |
| parent | 166774a2c2c6b82da5d984f587567071ff00c1f3 (diff) | |
| download | lwn-0ea8a56de21be24cb79abb03dee79aabcd60a316.tar.gz lwn-0ea8a56de21be24cb79abb03dee79aabcd60a316.zip | |
Merge drm/drm-next into drm-intel-next-queued
Sync drm-intel-gt-next here so we can have an unified fixes flow.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'include/linux/uaccess.h')
| -rw-r--r-- | include/linux/uaccess.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h index 0a76ddc07d59..94b285411659 100644 --- a/include/linux/uaccess.h +++ b/include/linux/uaccess.h @@ -6,11 +6,27 @@ #include <linux/sched.h> #include <linux/thread_info.h> -#define uaccess_kernel() segment_eq(get_fs(), KERNEL_DS) - #include <asm/uaccess.h> /* + * Force the uaccess routines to be wired up for actual userspace access, + * overriding any possible set_fs(KERNEL_DS) still lingering around. Undone + * using force_uaccess_end below. + */ +static inline mm_segment_t force_uaccess_begin(void) +{ + mm_segment_t fs = get_fs(); + + set_fs(USER_DS); + return fs; +} + +static inline void force_uaccess_end(mm_segment_t oldfs) +{ + set_fs(oldfs); +} + +/* * Architectures should provide two primitives (raw_copy_{to,from}_user()) * and get rid of their private instances of copy_{to,from}_user() and * __copy_{to,from}_user{,_inatomic}(). |
