Date: Tue, 3 Jun 2014 13:36:20 GMT From: mihai@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r269006 - soc2014/mihai/bhyve-icache-head/sys/amd64/vmm Message-ID: <201406031336.s53DaKl9066658@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mihai Date: Tue Jun 3 13:36:19 2014 New Revision: 269006 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=269006 Log: sys: amd64: vmm: vmm_instruction_cache.c: fix cached page Modified: soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Modified: soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c ============================================================================== --- soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Tue Jun 3 13:22:02 2014 (r269005) +++ soc2014/mihai/bhyve-icache-head/sys/amd64/vmm/vmm_instruction_cache.c Tue Jun 3 13:36:19 2014 (r269006) @@ -195,8 +195,10 @@ if ((pte32 & PG_V) == 0) goto error; - if (pte32 & PG_PS) + if (pte32 & PG_PS) { + vie_cached->pages_count--; break; + } ptpphys = pte32; } @@ -262,8 +264,10 @@ if (pte & PG_PS) { if (pgsize > 1 * GB) goto error; - else + else { + vie_cached->pages_count--; break; + } } ptpphys = pte; @@ -273,11 +277,12 @@ pte >>= ptpshift; pte <<= (ptpshift + 12); pte >>= 12; vie_cached->pages_mask[vie_cached->pages_count] = (1 << ptpshift) - 1; - vie_cached->pages[vie_cached->pages_count++] = ptpphys; + vie_cached->pages[vie_cached->pages_count++] = pte; protect: i=0; for (i = 0; i < vie_cached->pages_count; i++) { +// printf("vm_map_protect %d, %lx -> %lx\n",i, vie_cached->pages[i], vie_cached->pages_mask[i]); vm_map_protect(&(vm_get_vmspace(vm)->vm_map), vie_cached->pages[i], vie_cached->pages[i] + vie_cached->pages_mask[i] + 1, VM_PROT_READ | VM_PROT_EXECUTE, 0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406031336.s53DaKl9066658>