diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-10 13:59:07 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-10 13:59:07 -0400 |
| commit | 5fa0eb0b4d4780fbd6d8a09850cc4fd539e9fe65 (patch) | |
| tree | dc046871a73abd4f9d5f39f5379234cead2607e7 /arch/x86/entry | |
| parent | c48ce9f190266b763e809dd79fcf4152f558793c (diff) | |
| parent | d4b05923f579c234137317cdf9a5eb69ddab76d1 (diff) | |
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 updates from Thomas Gleixner:
"A pile of regression fixes and updates:
- address the fallout of the patches which made the cpuid - nodeid
relation permanent: Handling of invalid APIC ids and preventing
pointless warning messages.
- force eager FPU when protection keys are enabled. Protection keys
are not generating FPU exceptions so they cannot work with the lazy
FPU mechanism.
- prevent force migration of interrupts which are not part of the CPU
vector domain.
- handle the fact that APIC ids are not updated in the ACPI/MADT
tables on physical CPU hotplug
- remove bash-isms from syscall table generator script
- use the hypervisor supplied APIC frequency when running on VMware"
* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/pkeys: Make protection keys an "eager" feature
x86/apic: Prevent pointless warning messages
x86/acpi: Prevent LAPIC id 0xff from being accounted
arch/x86: Handle non enumerated CPU after physical hotplug
x86/unwind: Fix oprofile module link error
x86/vmware: Skip lapic calibration on VMware
x86/syscalls: Remove bash-isms in syscall table generator
x86/irq: Prevent force migration of irqs which are not in the vector domain
Diffstat (limited to 'arch/x86/entry')
| -rw-r--r-- | arch/x86/entry/syscalls/syscalltbl.sh | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/x86/entry/syscalls/syscalltbl.sh b/arch/x86/entry/syscalls/syscalltbl.sh index cd3d3015d7df..751d1f992630 100644 --- a/arch/x86/entry/syscalls/syscalltbl.sh +++ b/arch/x86/entry/syscalls/syscalltbl.sh | |||
| @@ -10,8 +10,11 @@ syscall_macro() { | |||
| 10 | 10 | ||
| 11 | # Entry can be either just a function name or "function/qualifier" | 11 | # Entry can be either just a function name or "function/qualifier" |
| 12 | real_entry="${entry%%/*}" | 12 | real_entry="${entry%%/*}" |
| 13 | qualifier="${entry:${#real_entry}}" # Strip the function name | 13 | if [ "$entry" = "$real_entry" ]; then |
| 14 | qualifier="${qualifier:1}" # Strip the slash, if any | 14 | qualifier= |
| 15 | else | ||
| 16 | qualifier=${entry#*/} | ||
| 17 | fi | ||
| 15 | 18 | ||
| 16 | echo "__SYSCALL_${abi}($nr, $real_entry, $qualifier)" | 19 | echo "__SYSCALL_${abi}($nr, $real_entry, $qualifier)" |
| 17 | } | 20 | } |
| @@ -22,7 +25,7 @@ emit() { | |||
| 22 | entry="$3" | 25 | entry="$3" |
| 23 | compat="$4" | 26 | compat="$4" |
| 24 | 27 | ||
| 25 | if [ "$abi" == "64" -a -n "$compat" ]; then | 28 | if [ "$abi" = "64" -a -n "$compat" ]; then |
| 26 | echo "a compat entry for a 64-bit syscall makes no sense" >&2 | 29 | echo "a compat entry for a 64-bit syscall makes no sense" >&2 |
| 27 | exit 1 | 30 | exit 1 |
| 28 | fi | 31 | fi |
| @@ -45,17 +48,17 @@ emit() { | |||
| 45 | grep '^[0-9]' "$in" | sort -n | ( | 48 | grep '^[0-9]' "$in" | sort -n | ( |
| 46 | while read nr abi name entry compat; do | 49 | while read nr abi name entry compat; do |
| 47 | abi=`echo "$abi" | tr '[a-z]' '[A-Z]'` | 50 | abi=`echo "$abi" | tr '[a-z]' '[A-Z]'` |
| 48 | if [ "$abi" == "COMMON" -o "$abi" == "64" ]; then | 51 | if [ "$abi" = "COMMON" -o "$abi" = "64" ]; then |
| 49 | # COMMON is the same as 64, except that we don't expect X32 | 52 | # COMMON is the same as 64, except that we don't expect X32 |
| 50 | # programs to use it. Our expectation has nothing to do with | 53 | # programs to use it. Our expectation has nothing to do with |
| 51 | # any generated code, so treat them the same. | 54 | # any generated code, so treat them the same. |
| 52 | emit 64 "$nr" "$entry" "$compat" | 55 | emit 64 "$nr" "$entry" "$compat" |
| 53 | elif [ "$abi" == "X32" ]; then | 56 | elif [ "$abi" = "X32" ]; then |
| 54 | # X32 is equivalent to 64 on an X32-compatible kernel. | 57 | # X32 is equivalent to 64 on an X32-compatible kernel. |
| 55 | echo "#ifdef CONFIG_X86_X32_ABI" | 58 | echo "#ifdef CONFIG_X86_X32_ABI" |
| 56 | emit 64 "$nr" "$entry" "$compat" | 59 | emit 64 "$nr" "$entry" "$compat" |
| 57 | echo "#endif" | 60 | echo "#endif" |
| 58 | elif [ "$abi" == "I386" ]; then | 61 | elif [ "$abi" = "I386" ]; then |
| 59 | emit "$abi" "$nr" "$entry" "$compat" | 62 | emit "$abi" "$nr" "$entry" "$compat" |
| 60 | else | 63 | else |
| 61 | echo "Unknown abi $abi" >&2 | 64 | echo "Unknown abi $abi" >&2 |
