Date: Fri, 25 Nov 2016 19:36:27 +0000 (UTC) From: Justin Hibbits <jhibbits@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r309167 - head/sys/powerpc/include Message-ID: <201611251936.uAPJaRg0084670@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhibbits Date: Fri Nov 25 19:36:27 2016 New Revision: 309167 URL: https://svnweb.freebsd.org/changeset/base/309167 Log: Add an isync to after mtsrin, required by the MPC750 errata MPC750 User Manual Errata (rev 1) adds a note to C.4.2.2 noting that mtsr, mtsrin, and mtmsr all require a isync after the instruction and before data address translation uses any of the segment registers. This should make FreeBSD run correctly on the G3 again. Reported by: Mark Millard MFC after: 1 week Modified: head/sys/powerpc/include/cpufunc.h Modified: head/sys/powerpc/include/cpufunc.h ============================================================================== --- head/sys/powerpc/include/cpufunc.h Fri Nov 25 19:25:20 2016 (r309166) +++ head/sys/powerpc/include/cpufunc.h Fri Nov 25 19:36:27 2016 (r309167) @@ -82,7 +82,7 @@ static __inline void mtsrin(vm_offset_t va, register_t value) { - __asm __volatile ("mtsrin %0,%1" :: "r"(value), "r"(va)); + __asm __volatile ("mtsrin %0,%1; isync" :: "r"(value), "r"(va)); } static __inline register_t
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611251936.uAPJaRg0084670>