Thomas Bogendoerfer | 45deb5fa | 2021-04-01 14:56:36 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | |
| 3 | #include <linux/uaccess.h> |
| 4 | |
| 5 | static inline int __get_addr(unsigned long *a, unsigned long *p, bool user) |
| 6 | { |
Thomas Bogendoerfer | 7cba412 | 2021-04-07 01:03:48 +0200 | [diff] [blame] | 7 | return user ? get_user(*a, (unsigned long __user *)p) : |
| 8 | get_kernel_nofault(*a, p); |
Thomas Bogendoerfer | 45deb5fa | 2021-04-01 14:56:36 +0200 | [diff] [blame] | 9 | } |
| 10 | |
| 11 | static inline int __get_inst16(u16 *i, u16 *p, bool user) |
| 12 | { |
Thomas Bogendoerfer | 7cba412 | 2021-04-07 01:03:48 +0200 | [diff] [blame] | 13 | return user ? get_user(*i, (u16 __user *)p) : get_kernel_nofault(*i, p); |
Thomas Bogendoerfer | 45deb5fa | 2021-04-01 14:56:36 +0200 | [diff] [blame] | 14 | } |
| 15 | |
| 16 | static inline int __get_inst32(u32 *i, u32 *p, bool user) |
| 17 | { |
Thomas Bogendoerfer | 7cba412 | 2021-04-07 01:03:48 +0200 | [diff] [blame] | 18 | return user ? get_user(*i, (u32 __user *)p) : get_kernel_nofault(*i, p); |
Thomas Bogendoerfer | 45deb5fa | 2021-04-01 14:56:36 +0200 | [diff] [blame] | 19 | } |