opnsense-src/sys/powerpc
Konstantin Belousov 30b3018d48 Provide protection against starvation of the ll/sc loops when accessing userpace.
Casueword(9) on ll/sc architectures must be prepared for userspace
constantly modifying the same cache line as containing the CAS word,
and not loop infinitely.  Otherwise, rogue userspace livelocks the
kernel.

To fix the issue, change casueword(9) interface to return new value 1
indicating that either comparision or store failed, instead of relying
on the oldval == *oldvalp comparison.  The primitive no longer retries
the operation if it failed spuriously.  Modify callers of
casueword(9), all in kern_umtx.c, to handle retries, and react to
stops and requests to terminate between retries.

On x86, despite cmpxchg should not return spurious failures, we can
take advantage of the new interface and just return PSL.ZF.

Reviewed by:	andrew (arm64, previous version), markj
Tested by:	pho
Reported by:	https://xenbits.xen.org/xsa/advisory-295.txt
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D20772
2019-07-12 18:43:24 +00:00
..
aim Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
booke Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
conf sys: Remove DEV_RANDOM device option 2019-06-21 00:16:30 +00:00
cpufreq powerpc: Fix cpufreq statement scoping 2019-03-08 03:59:53 +00:00
fpu powerpc: Apply r178139 from sparc64 to powerpc's fpu_sqrt 2019-04-03 03:54:30 +00:00
include powerpc/booke: Handle misaligned floating point loads/stores as on AIM 2019-06-26 01:14:39 +00:00
mambo sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
mikrotik - Allow different slicers for different flash types to be registered 2017-02-22 10:21:39 +00:00
mpc85xx powerpc/mpc85xx: Use the proper (EREF) form of writing to DBCR0 2019-05-23 03:47:25 +00:00
ofw Fix bug on newbus device deletion: we should delete the child's devinfo 2019-06-16 21:56:45 +00:00
powermac Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
powernv powernv: Port HMI handler to use the message framework 2019-06-10 03:24:38 +00:00
powerpc Provide protection against starvation of the ll/sc loops when accessing userpace. 2019-07-12 18:43:24 +00:00
ps3 Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
pseries [PPC64] pseries: fix realmaxaddr calculation 2019-07-10 13:36:17 +00:00
psim add snps IP uart support / genaralize UART 2018-08-19 21:10:21 +00:00