projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register...
[firefly-linux-kernel-4.4.55.git]
/
arch
/
i386
/
kernel
/
cpu
/
common.c
diff --git
a/arch/i386/kernel/cpu/common.c
b/arch/i386/kernel/cpu/common.c
index 4553ffd94b1f9f2a645e75ba6982e80c40543cd0..46ce9b248f5510088ca7fd1765fcfdd86ea44bd9 100644
(file)
--- a/
arch/i386/kernel/cpu/common.c
+++ b/
arch/i386/kernel/cpu/common.c
@@
-613,8
+613,8
@@
void __devinit cpu_init(void)
memcpy(thread->tls_array, &per_cpu(cpu_gdt_table, cpu),
GDT_ENTRY_TLS_ENTRIES * 8);
memcpy(thread->tls_array, &per_cpu(cpu_gdt_table, cpu),
GDT_ENTRY_TLS_ENTRIES * 8);
-
__asm__ __volatile__("lgdt %0" : : "m" (cpu_gdt_descr[cpu])
);
-
__asm__ __volatile__("lidt %0" : : "m" (idt_descr)
);
+
load_gdt(&cpu_gdt_descr[cpu]
);
+
load_idt(&idt_descr
);
/*
* Delete NT
/*
* Delete NT
@@
-642,12
+642,12
@@
void __devinit cpu_init(void)
asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");
/* Clear all 6 debug registers: */
asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");
/* Clear all 6 debug registers: */
-
-#define CD(register) set_debugreg(0, register)
-
-
CD(0); CD(1); CD(2); CD(3); /* no db4 and db5 */; CD(6); CD(7
);
-
-#undef CD
+ set_debugreg(0, 0);
+ set_debugreg(0, 1);
+ set_debugreg(0, 2);
+
set_debugreg(0, 3
);
+ set_debugreg(0, 6);
+ set_debugreg(0, 7);
/*
* Force FPU initialization:
/*
* Force FPU initialization: