Pull x86 fixes from Borislav Petkov: "As expected, fixes started trickling in after the holidays so here is the accumulated pile of x86 fixes for 5.11: - A fix for fanotify_mark() missing the conversion of x86_32 native syscalls which take 64-bit arguments to the compat handlers due to former having a general compat handler. (Brian Gerst) - Add a forgotten pmd page destructor call to pud_free_pmd_page() where a pmd page is freed. (Dan Williams) - Make IN/OUT insns with an u8 immediate port operand handling for SEV-ES guests more precise by using only the single port byte and not the whole s32 value of the insn decoder. (Peter Gonda) - Correct a straddling end range check before returning the proper MTRR type, when the end address is the same as top of memory. (Ying-Tsun Huang) - Change PQR_ASSOC MSR update scheme when moving a task to a resctrl resource group to avoid significant performance overhead with some resctrl workloads. (Fenghua Yu) - Avoid the actual task move overhead when the task is already in the resource group. (Fenghua Yu)" * tag 'x86_urgent_for_v5.11_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/resctrl: Don't move a task to the same resource group x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR x86/mtrr: Correct the range check before performing MTRR type lookups x86/sev-es: Fix SEV-ES OUT/IN immediate opcode vc handling x86/mm: Fix leak of pmd ptlock fanotify: Fix sys_fanotify_mark() on native x86-32
Showing the changes to include/linux (1 of 8 files). Show all
Unified · Split
| @@ -251,6 +251,30 @@ static inline int is_syscall_trace_event(struct trace_event_call *tp_event) · 250 unmodified lines | ||
| 251 | 251 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) |
| 252 | 252 | #endif /* __SYSCALL_DEFINEx */ |
| 253 | 253 | |
| 254 | +/* For split 64-bit arguments on 32-bit architectures */ | |
| 255 | +#ifdef __LITTLE_ENDIAN | |
| 256 | +#define SC_ARG64(name) u32, name##_lo, u32, name##_hi | |
| 257 | +#else | |
| 258 | +#define SC_ARG64(name) u32, name##_hi, u32, name##_lo | |
| 259 | +#endif | |
| 260 | +#define SC_VAL64(type, name) ((type) name##_hi << 32 | name##_lo) | |
| 261 | + | |
| 262 | +#ifdef CONFIG_COMPAT | |
| 263 | +#define SYSCALL32_DEFINE1 COMPAT_SYSCALL_DEFINE1 | |
| 264 | +#define SYSCALL32_DEFINE2 COMPAT_SYSCALL_DEFINE2 | |
| 265 | +#define SYSCALL32_DEFINE3 COMPAT_SYSCALL_DEFINE3 | |
| 266 | +#define SYSCALL32_DEFINE4 COMPAT_SYSCALL_DEFINE4 | |
| 267 | +#define SYSCALL32_DEFINE5 COMPAT_SYSCALL_DEFINE5 | |
| 268 | +#define SYSCALL32_DEFINE6 COMPAT_SYSCALL_DEFINE6 | |
| 269 | +#else | |
| 270 | +#define SYSCALL32_DEFINE1 SYSCALL_DEFINE1 | |
| 271 | +#define SYSCALL32_DEFINE2 SYSCALL_DEFINE2 | |
| 272 | +#define SYSCALL32_DEFINE3 SYSCALL_DEFINE3 | |
| 273 | +#define SYSCALL32_DEFINE4 SYSCALL_DEFINE4 | |
| 274 | +#define SYSCALL32_DEFINE5 SYSCALL_DEFINE5 | |
| 275 | +#define SYSCALL32_DEFINE6 SYSCALL_DEFINE6 | |
| 276 | +#endif | |
| 277 | + | |
| 254 | 278 | /* |
| 255 | 279 | * Called before coming back to user-mode. Returning to user-mode with an |
| 256 | 280 | * address limit different than USER_DS can allow to overwrite kernel memory. |