Index: Makefile =================================================================== RCS file: /home/pcvs/ports/emulators/kqemu-kmod/Makefile,v retrieving revision 1.25 diff -u -p -r1.25 Makefile --- Makefile 12 May 2008 19:09:52 -0000 1.25 +++ Makefile 18 May 2008 16:50:42 -0000 @@ -7,7 +7,7 @@ PORTNAME= kqemu PORTVERSION= 1.3.0.p11 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= emulators kld MASTER_SITES= http://fabrice.bellard.free.fr/qemu/ \ http://qemu.org/ \ Index: files/patch-tssworkaround =================================================================== RCS file: /home/pcvs/ports/emulators/kqemu-kmod/files/patch-tssworkaround,v retrieving revision 1.3 diff -u -p -r1.3 patch-tssworkaround --- files/patch-tssworkaround 12 May 2008 19:09:52 -0000 1.3 +++ files/patch-tssworkaround 18 May 2008 17:12:27 -0000 @@ -32,7 +32,7 @@ Index: kqemu-freebsd.c + unsigned cpuid = PCPU_GET(cpuid); + struct user_segment_descriptor *newgdt = gdt; + -+ if (mp_ncpus <= 1 || kerngdtbase != (unsigned long)&gdt) ++ if (mp_ncpus <= 1 || kerngdtbase != (unsigned long)&gdt[0]) + /* UP host or gdt already moved, nothing to do */ + return; + if (cpuid) { @@ -48,7 +48,7 @@ Index: kqemu-freebsd.c + kqemu_gdts = &gdt[NGDT]; + ++kqemu_gdts_used; + newgdt = &kqemu_gdts[NGDT * (cpuid - 1)]; -+ bcopy(&gdt, newgdt, NGDT * sizeof(gdt[0])); ++ bcopy(&gdt[0], newgdt, NGDT * sizeof(gdt[0])); + kqemu_r_newgdt.rd_limit = NGDT * sizeof(gdt[0]) - 1; + kqemu_r_newgdt.rd_base = (long) newgdt; + } else { @@ -63,7 +63,7 @@ Index: kqemu-freebsd.c + lgdt(&kqemu_r_newgdt); + wrmsr(MSR_GSBASE, (u_int64_t)&__pcpu[cpuid]); + wrmsr(MSR_KGSBASE, curthread->td_pcb->pcb_gsbase); -+ wrmsr(MSR_FSBASE, 0); ++ wrmsr(MSR_FSBASE, curthread->td_pcb->pcb_fsbase); + } + ltr(gsel_tss); +}