In that other OS, all RCU code is in the one domain, and each SRCU user gets its own domain. (More or less.) They are all combined together in FreeBSD since it has only a bare-bones implementation in the KPI.
This is a problem because ib_uverbs holds an SRCU read lock when calling into the provider's destroy_cq function. Providers may expect to be able to use RCU primitives when tearing down, but calling synchronize_rcu() or synchronize_srcu() will lead to a deadlock, even on a completely separate SRCU domain.
To fix this will require adding real multiple-domain support to the KPI.
A commit references this bug:
Date: Fri Nov 29 13:33:14 UTC 2019
New revision: 518649
games/stuntrally: fix build on PPC with clang and ARM
We had until now CXXFLAGS_gcc=-Wno-narrowing, but it looks like this was incorrect because it did not fix the original issue.
Approved by: linimon (mentor), amdmi3 (maintainer)