From 1037e33c88bb0e1fe530c164f242df17030102e1 Mon Sep 17 00:00:00 2001 From: David Vrabel Date: Tue, 19 May 2015 15:49:22 +0200 Subject: [PATCH] spinlock: fix build with older GCC Older GCC versions such as 4.3 cannot have initializers for the members of anonymous structures, so initialize .head_tail instead. Use a SPINLOCK_TICKET_INC define so this initializer is near the spinlock_tickets_t definition (in case the structure changes requiring changes to the initializer). Signed-off-by: David Vrabel Reported-and-tested-by: Jan Beulich --- xen/common/spinlock.c | 2 +- xen/include/xen/spinlock.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c index c8dc8ba3dc..29149d1537 100644 --- a/xen/common/spinlock.c +++ b/xen/common/spinlock.c @@ -132,7 +132,7 @@ static always_inline u16 observe_head(spinlock_tickets_t *t) void _spin_lock(spinlock_t *lock) { - spinlock_tickets_t tickets = { .tail = 1, }; + spinlock_tickets_t tickets = SPINLOCK_TICKET_INC; LOCK_PROFILE_VAR; check_lock(&lock->debug); diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h index 311685a011..9286543bea 100644 --- a/xen/include/xen/spinlock.h +++ b/xen/include/xen/spinlock.h @@ -132,6 +132,8 @@ typedef union { }; } spinlock_tickets_t; +#define SPINLOCK_TICKET_INC { .head_tail = 0x10000, } + typedef struct spinlock { spinlock_tickets_t tickets; u16 recurse_cpu:12; -- 2.30.2