Date: Thu, 4 Feb 2010 05:25:59 +0000 (UTC) From: Neel Natu <neel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r203474 - head/sys/mips/mips Message-ID: <201002040525.o145PxOe020633@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: neel Date: Thu Feb 4 05:25:59 2010 New Revision: 203474 URL: http://svn.freebsd.org/changeset/base/203474 Log: Clean up all places in exception.S that fiddle with 'pcpup' directly. We now use the GET_CPU_PCPU() macro exclusively. This isolates the users of pcpu data from its implementation details. Reviewed by: imp Modified: head/sys/mips/mips/exception.S Modified: head/sys/mips/mips/exception.S ============================================================================== --- head/sys/mips/mips/exception.S Thu Feb 4 05:07:20 2010 (r203473) +++ head/sys/mips/mips/exception.S Thu Feb 4 05:25:59 2010 (r203474) @@ -146,19 +146,10 @@ VECTOR_END(MipsTLBMiss) *---------------------------------------------------------------------------- */ MipsDoTLBMiss: -#xxx mips64 unsafe? -#ifndef SMP - lui k1, %hi(_C_LABEL(pcpup)) -#endif #k0 already has BadVA bltz k0, 1f #02: k0<0 -> 1f (kernel fault) srl k0, k0, SEGSHIFT - 2 #03: k0=seg offset (almost) -#xxx mips64 unsafe? -#ifdef SMP GET_CPU_PCPU(k1) -#else - lw k1, %lo(_C_LABEL(pcpup))(k1) -#endif lw k1, PC_SEGBASE(k1) beqz k1, 2f #05: make sure segbase is not null andi k0, k0, 0x7fc #06: k0=seg offset (mask 0x3) @@ -821,12 +812,7 @@ NLEAF(MipsKernTLBInvalidException) sltu k1, k0, k1 beqz k1, 1f nop -#ifdef SMP GET_CPU_PCPU(k1) -#else - lui k1, %hi(_C_LABEL(pcpup)) - lw k1, %lo(_C_LABEL(pcpup))(k1) -#endif lw k1, PC_SEGBASE(k1) # works for single cpu???? beqz k1, _C_LABEL(MipsKernGenException) # seg tab is null nop @@ -917,13 +903,7 @@ NLEAF(MipsUserTLBInvalidException) sltu k1, k0, k1 beqz k1, _C_LABEL(MipsUserGenException) nop -#xxx mips64 unsafe? -#ifdef SMP GET_CPU_PCPU(k1) -#else - lui k1, %hi(_C_LABEL(pcpup)) - lw k1, %lo(_C_LABEL(pcpup))(k1) -#endif lw k1, PC_SEGBASE(k1) # works for single cpu???? beqz k1, _C_LABEL(MipsUserGenException) # seg tab is null nop
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002040525.o145PxOe020633>