Index: linux-3.2/include/linux/seqlock.h =================================================================== --- linux-3.2.orig/include/linux/seqlock.h +++ linux-3.2/include/linux/seqlock.h @@ -177,7 +177,7 @@ typedef struct { /* * Read side functions for starting and finalizing a read side section. */ -#ifndef CONFIG_PREEMPT_RT +#ifndef CONFIG_PREEMPT_RT_FULL static inline unsigned read_seqbegin(const seqlock_t *sl) { return read_seqcount_begin(&sl->seqcount); Index: linux-3.2/kernel/cpu.c =================================================================== --- linux-3.2.orig/kernel/cpu.c +++ linux-3.2/kernel/cpu.c @@ -59,16 +59,20 @@ static struct { int refcount; } cpu_hotplug = { .active_writer = NULL, +#ifdef CONFIG_PREEMPT_RT_FULL + .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), +#else .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), +#endif .refcount = 0, }; #ifdef CONFIG_PREEMPT_RT_FULL -# define hotplug_lock() spin_lock(&cpu_hotplug.lock) -# define hotplug_unlock() spin_unlock(&cpu_hotplug.lock) +# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock) +# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock) #else # define hotplug_lock() mutex_lock(&cpu_hotplug.lock) -# define hotplug_lock() mutex_unlock(&cpu_hotplug.lock) +# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock) #endif struct hotplug_pcp { Index: linux-3.2/localversion-rt =================================================================== --- linux-3.2.orig/localversion-rt +++ linux-3.2/localversion-rt @@ -1 +1 @@ --rt15 +-rt16 Index: linux-3.2/include/net/neighbour.h =================================================================== --- linux-3.2.orig/include/net/neighbour.h +++ linux-3.2/include/net/neighbour.h @@ -385,7 +385,7 @@ struct neighbour_cb { #define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb) -static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n, +static inline void neigh_ha_snapshot(char *dst, struct neighbour *n, const struct net_device *dev) { unsigned int seq;