From: David Vrabel Date: Tue, 19 May 2015 13:49:22 +0000 (+0200) Subject: spinlock: fix build with older GCC X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3225 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1037e33c88bb0e1fe530c164f242df17030102e1;p=xen.git 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 --- 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;