diff options
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/i8k.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c index f0863bec186f..d72433f2d310 100644 --- a/drivers/char/i8k.c +++ b/drivers/char/i8k.c | |||
@@ -120,7 +120,7 @@ static int i8k_smm(struct smm_regs *regs) | |||
120 | int eax = regs->eax; | 120 | int eax = regs->eax; |
121 | 121 | ||
122 | #if defined(CONFIG_X86_64) | 122 | #if defined(CONFIG_X86_64) |
123 | asm("pushq %%rax\n\t" | 123 | asm volatile("pushq %%rax\n\t" |
124 | "movl 0(%%rax),%%edx\n\t" | 124 | "movl 0(%%rax),%%edx\n\t" |
125 | "pushq %%rdx\n\t" | 125 | "pushq %%rdx\n\t" |
126 | "movl 4(%%rax),%%ebx\n\t" | 126 | "movl 4(%%rax),%%ebx\n\t" |
@@ -142,11 +142,11 @@ static int i8k_smm(struct smm_regs *regs) | |||
142 | "lahf\n\t" | 142 | "lahf\n\t" |
143 | "shrl $8,%%eax\n\t" | 143 | "shrl $8,%%eax\n\t" |
144 | "andl $1,%%eax\n" | 144 | "andl $1,%%eax\n" |
145 | :"=a"(rc), "+m" (*regs) | 145 | :"=a"(rc) |
146 | : "a"(regs) | 146 | : "a"(regs) |
147 | : "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); | 147 | : "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); |
148 | #else | 148 | #else |
149 | asm("pushl %%eax\n\t" | 149 | asm volatile("pushl %%eax\n\t" |
150 | "movl 0(%%eax),%%edx\n\t" | 150 | "movl 0(%%eax),%%edx\n\t" |
151 | "push %%edx\n\t" | 151 | "push %%edx\n\t" |
152 | "movl 4(%%eax),%%ebx\n\t" | 152 | "movl 4(%%eax),%%ebx\n\t" |
@@ -168,7 +168,7 @@ static int i8k_smm(struct smm_regs *regs) | |||
168 | "lahf\n\t" | 168 | "lahf\n\t" |
169 | "shrl $8,%%eax\n\t" | 169 | "shrl $8,%%eax\n\t" |
170 | "andl $1,%%eax\n" | 170 | "andl $1,%%eax\n" |
171 | :"=a"(rc), "+m" (*regs) | 171 | :"=a"(rc) |
172 | : "a"(regs) | 172 | : "a"(regs) |
173 | : "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); | 173 | : "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); |
174 | #endif | 174 | #endif |