Re: linux-next: build warning after merge of the akpm tree

From: Davidlohr Bueso
Date: Mon May 19 2014 - 11:13:30 EST


Hi Stephen,

On Mon, 2014-05-19 at 18:13 +1000, Stephen Rothwell wrote:
> Hi Andrew,
>
> After merging the akpm tree, today's linux-next build (arm
> multi_v7_defconfig) produced these warnings:
>
>
> ipc/ipcns_notifier.c:22:8: warning: excess elements in struct initializer [enabled by default]
> ipc/ipcns_notifier.c:22:8: warning: (near initialization for 'ipcns_chain.rwsem') [enabled by default]
> ipc/ipcns_notifier.c:22:8: warning: excess elements in struct initializer [enabled by default]
> ipc/ipcns_notifier.c:22:8: warning: (near initialization for 'ipcns_chain.rwsem') [enabled by default]
>
> and many more in other files ...

Hmm are all the warning the same? Is this just on arm? have you seen it
in other archs? (Could you please send me the .config)

> Presumably a result of commit fe2038c57c03 ("rwsem: Support optimistic
> spinning").

If CONFIG_SMP, we add two new fields to the rwsem structure
(include/linux/rwsem.h) and likewise we update the
__RWSEM_INITIALIZER(name) macro. Afaict the only way to trigger
something like that is to be using the spinlock variant
(rwsem-spinlock.h).

The fix for that would be:

diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 3e108f1..091d993 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -64,7 +64,7 @@ static inline int rwsem_is_locked(struct rw_semaphore *sem)
# define __RWSEM_DEP_MAP_INIT(lockname)
#endif

-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) && defined(CONFIG_RWSEM_XCHGADD_ALGORITHM)
#define __RWSEM_INITIALIZER(name) \
{ RWSEM_UNLOCKED_VALUE, \
__RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \



> I reverted that commit (and
> "rwsem-support-optimistic-spinning-checkpatch-fixes") for today.

This was picked up today by -tip maintainers, so I guess it should also
be removed from -mm.

Thanks,
Davidlohr


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/