Optimistic spinning is only used by the xadd variant of rw-semaphores. Make sure that we use the old version of the __RWSEM_INITIALIZER macro for systems that rely on the spinlock one, otherwise warnings can be triggered, such as the following reported on an arm box: 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]
Unified · Split
| @@ -64,7 +64,7 @@ static inline int rwsem_is_locked(struct rw_semaphore *sem) · 63 unmodified lines | ||
| 64 | 64 | # define __RWSEM_DEP_MAP_INIT(lockname) |
| 65 | 65 | #endif |
| 66 | 66 | |
| 67 | −#ifdef CONFIG_SMP | |
| 67 | +#if defined(CONFIG_SMP) && !defined(CONFIG_RWSEM_GENERIC_SPINLOCK) | |
| 68 | 68 | #define __RWSEM_INITIALIZER(name) \ |
| 69 | 69 | { RWSEM_UNLOCKED_VALUE, \ |
| 70 | 70 | __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \ |