hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/x86/mm/kmmio.c
....@@ -130,7 +130,7 @@
130130 pmdval_t v = pmd_val(*pmd);
131131 if (clear) {
132132 *old = v;
133
- new_pmd = pmd_mknotpresent(*pmd);
133
+ new_pmd = pmd_mkinvalid(*pmd);
134134 } else {
135135 /* Presume this has been called with clear==true previously */
136136 new_pmd = __pmd(*old);
....@@ -173,7 +173,7 @@
173173 return -1;
174174 }
175175
176
- __flush_tlb_one_kernel(f->addr);
176
+ flush_tlb_one_kernel(f->addr);
177177 return 0;
178178 }
179179
....@@ -193,8 +193,8 @@
193193 int ret;
194194 WARN_ONCE(f->armed, KERN_ERR pr_fmt("kmmio page already armed.\n"));
195195 if (f->armed) {
196
- pr_warning("double-arm: addr 0x%08lx, ref %d, old %d\n",
197
- f->addr, f->count, !!f->old_presence);
196
+ pr_warn("double-arm: addr 0x%08lx, ref %d, old %d\n",
197
+ f->addr, f->count, !!f->old_presence);
198198 }
199199 ret = clear_page_presence(f, true);
200200 WARN_ONCE(ret < 0, KERN_ERR pr_fmt("arming at 0x%08lx failed.\n"),
....@@ -260,7 +260,7 @@
260260 goto no_kmmio;
261261 }
262262
263
- ctx = &get_cpu_var(kmmio_ctx);
263
+ ctx = this_cpu_ptr(&kmmio_ctx);
264264 if (ctx->active) {
265265 if (page_base == ctx->addr) {
266266 /*
....@@ -285,7 +285,7 @@
285285 pr_emerg("previous hit was at 0x%08lx.\n", ctx->addr);
286286 disarm_kmmio_fault_page(faultpage);
287287 }
288
- goto no_kmmio_ctx;
288
+ goto no_kmmio;
289289 }
290290 ctx->active++;
291291
....@@ -314,11 +314,8 @@
314314 * the user should drop to single cpu before tracing.
315315 */
316316
317
- put_cpu_var(kmmio_ctx);
318317 return 1; /* fault handled */
319318
320
-no_kmmio_ctx:
321
- put_cpu_var(kmmio_ctx);
322319 no_kmmio:
323320 rcu_read_unlock();
324321 preempt_enable_no_resched();
....@@ -333,7 +330,7 @@
333330 static int post_kmmio_handler(unsigned long condition, struct pt_regs *regs)
334331 {
335332 int ret = 0;
336
- struct kmmio_context *ctx = &get_cpu_var(kmmio_ctx);
333
+ struct kmmio_context *ctx = this_cpu_ptr(&kmmio_ctx);
337334
338335 if (!ctx->active) {
339336 /*
....@@ -341,8 +338,7 @@
341338 * something external causing them (f.e. using a debugger while
342339 * mmio tracing enabled), or erroneous behaviour
343340 */
344
- pr_warning("unexpected debug trap on CPU %d.\n",
345
- smp_processor_id());
341
+ pr_warn("unexpected debug trap on CPU %d.\n", smp_processor_id());
346342 goto out;
347343 }
348344
....@@ -372,7 +368,6 @@
372368 if (!(regs->flags & X86_EFLAGS_TF))
373369 ret = 1;
374370 out:
375
- put_cpu_var(kmmio_ctx);
376371 return ret;
377372 }
378373