summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@google.com>2017-09-04 13:22:07 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2017-09-04 13:22:07 +0200
commitcff17411c160fced8aaa0a4eb9c0149cf24c91e8 (patch)
treeaea92a741a71f5feaf132aafdf003d9763ed8bf6 /arch
parent0caf1df0c520325c9352149795266709e989b222 (diff)
parentcd99a4f3f43ba1b88ff0ef01a9d5564fdf824c38 (diff)
Merge 4.4.86 into android-4.4
Changes in 4.4.86 scsi: isci: avoid array subscript warning ALSA: au88x0: Fix zero clear of stream->resources btrfs: remove duplicate const specifier i2c: jz4780: drop superfluous init gcov: add support for gcc version >= 6 gcov: support GCC 7.1 lightnvm: initialize ppa_addr in dev_to_generic_addr() p54: memset(0) whole array lpfc: Fix Device discovery failures during switch reboot test. arm64: mm: abort uaccess retries upon fatal signal x86/io: Add "memory" clobber to insb/insw/insl/outsb/outsw/outsl arm64: fpsimd: Prevent registers leaking across exec scsi: sg: protect accesses to 'reserved' page array scsi: sg: reset 'res_in_use' after unlinking reserved array drm/i915: fix compiler warning in drivers/gpu/drm/i915/intel_uncore.c Linux 4.4.86 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm64/kernel/fpsimd.c2
-rw-r--r--arch/arm64/mm/fault.c5
-rw-r--r--arch/x86/include/asm/io.h4
3 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index acc1afd5c749..f995dae1c8fd 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -157,9 +157,11 @@ void fpsimd_thread_switch(struct task_struct *next)
void fpsimd_flush_thread(void)
{
+ preempt_disable();
memset(&current->thread.fpsimd_state, 0, sizeof(struct fpsimd_state));
fpsimd_flush_task_state(current);
set_thread_flag(TIF_FOREIGN_FPSTATE);
+ preempt_enable();
}
/*
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 253bdf2cfe0f..f243132b426c 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -342,8 +342,11 @@ retry:
* signal first. We do not need to release the mmap_sem because it
* would already be released in __lock_page_or_retry in mm/filemap.c.
*/
- if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
+ if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) {
+ if (!user_mode(regs))
+ goto no_context;
return 0;
+ }
/*
* Major/minor page fault accounting is only done on the initial
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index de25aad07853..9016b4b70375 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -304,13 +304,13 @@ static inline unsigned type in##bwl##_p(int port) \
static inline void outs##bwl(int port, const void *addr, unsigned long count) \
{ \
asm volatile("rep; outs" #bwl \
- : "+S"(addr), "+c"(count) : "d"(port)); \
+ : "+S"(addr), "+c"(count) : "d"(port) : "memory"); \
} \
\
static inline void ins##bwl(int port, void *addr, unsigned long count) \
{ \
asm volatile("rep; ins" #bwl \
- : "+D"(addr), "+c"(count) : "d"(port)); \
+ : "+D"(addr), "+c"(count) : "d"(port) : "memory"); \
}
BUILDIO(b, b, char)