Re: [PATCH v9 07/61] xarray: Add the xa_lock to the radix_tree_root

From: Matthew Wilcox
Date: Thu Apr 12 2018 - 17:10:46 EST


On Thu, Apr 12, 2018 at 02:59:32PM -0600, Ross Zwisler wrote:
> This is causing build breakage in the radix tree test suite in the
> current linux/master:
>
> ./linux/../../../../include/linux/idr.h: In function âidr_init_baseâ:
> ./linux/../../../../include/linux/radix-tree.h:129:2: warning:
> implicit declaration of function âspin_lock_initâ; did you mean
> âspinlock_tâ? [-Wimplicit-function-declaration]

Argh. That was added two patches later in
"xarray: Add definition of struct xarray":

diff --git a/tools/include/linux/spinlock.h b/tools/include/linux/spinlock.h
index b21b586b9854..4ec4d2cbe27a 100644
--- a/tools/include/linux/spinlock.h
+++ b/tools/include/linux/spinlock.h
@@ -6,8 +6,9 @@
#include <stdbool.h>

#define spinlock_t pthread_mutex_t
-#define DEFINE_SPINLOCK(x) pthread_mutex_t x = PTHREAD_MUTEX_INITIALIZER;
+#define DEFINE_SPINLOCK(x) pthread_mutex_t x = PTHREAD_MUTEX_INITIALIZER
#define __SPIN_LOCK_UNLOCKED(x) (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER
+#define spin_lock_init(x) pthread_mutex_init(x, NULL)

#define spin_lock_irqsave(x, f) (void)f, pthread_mutex_lock(x)
#define spin_unlock_irqrestore(x, f) (void)f, pthread_mutex_unlock(x)

I didn't pick up that it was needed this early on in the patch series.