summaryrefslogtreecommitdiffstats
path: root/kernel/arch/x86/um/asm
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/x86/um/asm')
-rw-r--r--kernel/arch/x86/um/asm/barrier.h16
-rw-r--r--kernel/arch/x86/um/asm/checksum.h1
-rw-r--r--kernel/arch/x86/um/asm/elf.h2
-rw-r--r--kernel/arch/x86/um/asm/processor.h2
-rw-r--r--kernel/arch/x86/um/asm/segment.h8
-rw-r--r--kernel/arch/x86/um/asm/syscall.h4
6 files changed, 17 insertions, 16 deletions
diff --git a/kernel/arch/x86/um/asm/barrier.h b/kernel/arch/x86/um/asm/barrier.h
index 7e8a1a650..755481f14 100644
--- a/kernel/arch/x86/um/asm/barrier.h
+++ b/kernel/arch/x86/um/asm/barrier.h
@@ -39,22 +39,10 @@
#define smp_mb() barrier()
#define smp_rmb() barrier()
#define smp_wmb() barrier()
-#define set_mb(var, value) do { var = value; barrier(); } while (0)
+
+#define smp_store_mb(var, value) do { WRITE_ONCE(var, value); barrier(); } while (0)
#define read_barrier_depends() do { } while (0)
#define smp_read_barrier_depends() do { } while (0)
-/*
- * Stop RDTSC speculation. This is needed when you need to use RDTSC
- * (or get_cycles or vread that possibly accesses the TSC) in a defined
- * code region.
- *
- * (Could use an alternative three way for this if there was one.)
- */
-static inline void rdtsc_barrier(void)
-{
- alternative_2("", "mfence", X86_FEATURE_MFENCE_RDTSC,
- "lfence", X86_FEATURE_LFENCE_RDTSC);
-}
-
#endif
diff --git a/kernel/arch/x86/um/asm/checksum.h b/kernel/arch/x86/um/asm/checksum.h
index 4b181b744..ee940185e 100644
--- a/kernel/arch/x86/um/asm/checksum.h
+++ b/kernel/arch/x86/um/asm/checksum.h
@@ -3,6 +3,7 @@
#include <linux/string.h>
#include <linux/in6.h>
+#include <linux/uaccess.h>
/*
* computes the checksum of a memory block at buff, length len,
diff --git a/kernel/arch/x86/um/asm/elf.h b/kernel/arch/x86/um/asm/elf.h
index 0a656b727..548197212 100644
--- a/kernel/arch/x86/um/asm/elf.h
+++ b/kernel/arch/x86/um/asm/elf.h
@@ -200,8 +200,6 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef struct user_i387_struct elf_fpregset_t;
-#define task_pt_regs(t) (&(t)->thread.regs)
-
struct task_struct;
extern int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu);
diff --git a/kernel/arch/x86/um/asm/processor.h b/kernel/arch/x86/um/asm/processor.h
index 2a206d2b1..233ee09c1 100644
--- a/kernel/arch/x86/um/asm/processor.h
+++ b/kernel/arch/x86/um/asm/processor.h
@@ -28,6 +28,8 @@ static inline void rep_nop(void)
#define cpu_relax() rep_nop()
#define cpu_relax_lowlatency() cpu_relax()
+#define task_pt_regs(t) (&(t)->thread.regs)
+
#include <asm/processor-generic.h>
#endif
diff --git a/kernel/arch/x86/um/asm/segment.h b/kernel/arch/x86/um/asm/segment.h
index 45183fcd1..41dd5e1f3 100644
--- a/kernel/arch/x86/um/asm/segment.h
+++ b/kernel/arch/x86/um/asm/segment.h
@@ -7,4 +7,12 @@ extern int host_gdt_entry_tls_min;
#define GDT_ENTRY_TLS_MIN host_gdt_entry_tls_min
#define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
+typedef struct {
+ unsigned long seg;
+} mm_segment_t;
+
+#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
+#define KERNEL_DS MAKE_MM_SEG(~0UL)
+#define USER_DS MAKE_MM_SEG(TASK_SIZE)
+
#endif
diff --git a/kernel/arch/x86/um/asm/syscall.h b/kernel/arch/x86/um/asm/syscall.h
index 9fe77b7b5..81d6562ce 100644
--- a/kernel/arch/x86/um/asm/syscall.h
+++ b/kernel/arch/x86/um/asm/syscall.h
@@ -3,6 +3,10 @@
#include <uapi/linux/audit.h>
+typedef asmlinkage long (*sys_call_ptr_t)(unsigned long, unsigned long,
+ unsigned long, unsigned long,
+ unsigned long, unsigned long);
+
static inline int syscall_get_arch(void)
{
#ifdef CONFIG_X86_32