Module Name: src Committed By: maxv Date: Wed Nov 13 10:13:41 UTC 2019
Modified Files: src/external/cddl/osnet/dev/fbt/x86: fbt_isa.c Log Message: Use x86_patch_window_{open,close}. This also fixes a bug: the CR0/PSL reloads were inverted. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c diff -u src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.1 src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.2 --- src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c:1.1 Mon May 28 23:47:39 2018 +++ src/external/cddl/osnet/dev/fbt/x86/fbt_isa.c Wed Nov 13 10:13:41 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: fbt_isa.c,v 1.1 2018/05/28 23:47:39 chs Exp $ */ +/* $NetBSD: fbt_isa.c,v 1.2 2019/11/13 10:13:41 maxv Exp $ */ /* * CDDL HEADER START @@ -175,28 +175,15 @@ fbt_patch_tracepoint(fbt_probe_t *fbt, f void fbt_patch_tracepoint(fbt_probe_t *fbt, fbt_patchval_t val) { - u_long psl; - u_long cr0; + u_long psl, cr0; - /* Disable interrupts. */ - psl = x86_read_psl(); - x86_disable_intr(); - - /* Disable write protection in supervisor mode. */ - cr0 = rcr0(); - lcr0(cr0 & ~CR0_WP); + x86_patch_window_open(&psl, &cr0); for (; fbt != NULL; fbt = fbt->fbtp_next) { *fbt->fbtp_patchpoint = val; } - /* Write back and invalidate cache, flush pipelines. */ - wbinvd(); - x86_flush(); - x86_write_psl(psl); - - /* Re-enable write protection. */ - lcr0(cr0); + x86_patch_window_close(psl, cr0); } #endif