Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Thomas Gleixner:
"Two last minute fixes:

- Prevent value evaluation via functions happening in the user access
enabled region of __put_user() (put another way: make sure to
evaluate the value to be stored in user space _before_ enabling
user space accesses)

- Correct the definition of a Hyper-V hypercall constant"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/hyper-v: Fix definition of HV_MAX_FLUSH_REP_COUNT
x86/uaccess: Don't leak the AC flag into __put_user() value evaluation

+5 -3
+1 -1
arch/x86/include/asm/hyperv-tlfs.h
··· 841 841 * count is equal with how many entries of union hv_gpa_page_range can 842 842 * be populated into the input parameter page. 843 843 */ 844 - #define HV_MAX_FLUSH_REP_COUNT (PAGE_SIZE - 2 * sizeof(u64) / \ 844 + #define HV_MAX_FLUSH_REP_COUNT ((PAGE_SIZE - 2 * sizeof(u64)) / \ 845 845 sizeof(union hv_gpa_page_range)) 846 846 847 847 struct hv_guest_mapping_flush_list {
+4 -2
arch/x86/include/asm/uaccess.h
··· 284 284 __put_user_goto(x, ptr, "l", "k", "ir", label); \ 285 285 break; \ 286 286 case 8: \ 287 - __put_user_goto_u64((__typeof__(*ptr))(x), ptr, label); \ 287 + __put_user_goto_u64(x, ptr, label); \ 288 288 break; \ 289 289 default: \ 290 290 __put_user_bad(); \ ··· 431 431 ({ \ 432 432 __label__ __pu_label; \ 433 433 int __pu_err = -EFAULT; \ 434 + __typeof__(*(ptr)) __pu_val; \ 435 + __pu_val = x; \ 434 436 __uaccess_begin(); \ 435 - __put_user_size((x), (ptr), (size), __pu_label); \ 437 + __put_user_size(__pu_val, (ptr), (size), __pu_label); \ 436 438 __pu_err = 0; \ 437 439 __pu_label: \ 438 440 __uaccess_end(); \