mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
rx: Include rx_lwp.h et al in fallback rx_atomic.h
In rx_atomic.h, our "fallback" implementation of atomics uses a global lock, using our afs_kmutex_t/MUTEX_ENTER() abstractions, but rx_atomic.h doesn't include any headers to define afs_kmutex_t et al. Most callers include rx_lwp.h or an equivalent before rx_atomic.h, but this is not guaranteed, and tests/rx/atomic-t.c (for example) does not do this. If someone tries to build OpenAFS on a platform that doesn't have a more specific rx atomic implementation, this means that building atomic-t fails: In file included from /.../tests/rx/atomic-t.c:34: /.../include/rx/rx_atomic.h: In function ‘rx_atomic_set’: /.../include/rx/rx_atomic.h:402:5: error: implicit declaration of function ‘MUTEX_ENTER’ [-Werror=implicit-function-declaration] MUTEX_ENTER(&rx_atomic_mutex); ^~~~~~~~~~~ /.../include/rx/rx_atomic.h:402:18: error: ‘rx_atomic_mutex’ undeclared (first use in this function); did you mean ‘rx_atomic_set’? MUTEX_ENTER(&rx_atomic_mutex); ^~~~~~~~~~~~~~~ rx_atomic_set To fix this, include rx_lwp.h in the "fallback" branch of rx_atomic.h (or rx_kmutex.h for the kernel, or rx_pthread.h for pthreads). This should ensure that our locking abstractions are defined appropriately so we can use the rx_atomic_mutex global lock. Change-Id: Ie281161f4920a5b6b5b23acd77f7677806245673 Reviewed-on: https://gerrit.openafs.org/16062 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Ben Huntsman <ben@huntsmans.net> Tested-by: Ben Huntsman <ben@huntsmans.net> Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Andrew Deason <adeason@sinenomine.net>
This commit is contained in:
parent
3ce2749b21
commit
18b4243772
@ -388,6 +388,14 @@ rx_atomic_sub(rx_atomic_t *atomic, int change)
|
|||||||
* This won't be the quickest thing ever.
|
* This won't be the quickest thing ever.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
# if defined(KERNEL)
|
||||||
|
# include "rx_kmutex.h"
|
||||||
|
# elif defined(AFS_PTHREAD_ENV)
|
||||||
|
# include "rx_pthread.h"
|
||||||
|
# else
|
||||||
|
# include "rx_lwp.h"
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef RX_ENABLE_LOCKS
|
# ifdef RX_ENABLE_LOCKS
|
||||||
extern afs_kmutex_t rx_atomic_mutex;
|
extern afs_kmutex_t rx_atomic_mutex;
|
||||||
# endif
|
# endif
|
||||||
|
Loading…
Reference in New Issue
Block a user