]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Apply r355819 to sparc64 - fix assertion failure after r355784
authorEd Maste <emaste@FreeBSD.org>
Thu, 23 Jan 2020 14:11:02 +0000 (14:11 +0000)
committerEd Maste <emaste@FreeBSD.org>
Thu, 23 Jan 2020 14:11:02 +0000 (14:11 +0000)
commitf5afa0f9fb1866b874e1822c84ccdfd45a44980a
treeaae994f0fc09975400aa8c337a4b52948258196c
parent10cd2843a541433a4923db80349f1983cb7a0be9
Apply r355819 to sparc64 - fix assertion failure after r355784

From r355819:
Repeat the spinlock_enter/exit pattern from amd64 on other architectures
to fix an assert violation introduced in r355784.  Without this
spinlock_exit() may see owepreempt and switch before reducing the
spinlock count.  amd64 had been optimized to do a single critical
enter/exit regardless of the number of spinlocks which avoided the
problem and this optimization had not been applied elsewhere.

This is completely untested - I have no obsolete Sparc hardware - but
someone did try testing recent changes on sparc64 (PR 243534).

PR: 243534
sys/sparc64/sparc64/machdep.c