| .. | .. |
|---|
| 25 | 25 | #define KERNEL_DS ((mm_segment_t) { 0 }) |
|---|
| 26 | 26 | #define USER_DS ((mm_segment_t) { -1 }) |
|---|
| 27 | 27 | |
|---|
| 28 | | -#define get_ds() (KERNEL_DS) |
|---|
| 29 | 28 | #define get_fs() (current->thread.current_ds) |
|---|
| 30 | 29 | #define set_fs(val) ((current->thread.current_ds) = (val)) |
|---|
| 31 | 30 | |
|---|
| 32 | | -#define segment_eq(a, b) ((a).seg == (b).seg) |
|---|
| 31 | +#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg) |
|---|
| 33 | 32 | |
|---|
| 34 | 33 | /* We have there a nice not-mapped page at PAGE_OFFSET - PAGE_SIZE, so that this test |
|---|
| 35 | 34 | * can be fairly lightweight. |
|---|
| .. | .. |
|---|
| 39 | 38 | #define __user_ok(addr, size) ({ (void)(size); (addr) < STACK_TOP; }) |
|---|
| 40 | 39 | #define __kernel_ok (uaccess_kernel()) |
|---|
| 41 | 40 | #define __access_ok(addr, size) (__user_ok((addr) & get_fs().seg, (size))) |
|---|
| 42 | | -#define access_ok(type, addr, size) \ |
|---|
| 43 | | - ({ (void)(type); __access_ok((unsigned long)(addr), size); }) |
|---|
| 41 | +#define access_ok(addr, size) __access_ok((unsigned long)(addr), size) |
|---|
| 44 | 42 | |
|---|
| 45 | 43 | /* |
|---|
| 46 | 44 | * The exception table consists of pairs of addresses: the first is the |
|---|