Re: stable/linux-3.16.y build: 178 builds: 1 failed, 177 passed, 2 errors, 57 warnings (v3.16.52)
From: Manfred Spraul
Date: Sat Jan 13 2018 - 13:51:17 EST
Hi Arnd,
On 01/03/2018 12:15 AM, Arnd Bergmann wrote:
2 ipc/sem.c:377:6: warning: '___p1' may be used uninitialized in this function [-Wmaybe-uninitialized]
This code was last touched in 3.16 by the backport of commit
5864a2fd3088 ("ipc/sem.c: fix complex_count vs. simple op race")
The warning is in "smp_load_acquire(&sma->complex_mode))", and I suspect
that commit 27d7be1801a4 ("ipc/sem.c: avoid using spin_unlock_wait()")
avoided the warning upstream by removing the smp_mb() before it.
The smp_mb() pairs with spin_unlock_wait() in complexmode_enter()
It is removed by commit 27d7be1801a4 ("ipc/sem.c: avoid using
spin_unlock_wait()").
From what I see, it doesn't exist in any of the stable kernels
(intentionally, the above commit is a rewrite for better performance).
___p1 is from smp_load_acquire()
>ÂÂÂÂÂÂÂ typeof(*p) ___p1 = READ_ONCE(*p);ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ \
I don't see how ___p1 could be used uninitialized. Perhaps a compiler issue?
--
ÂÂÂ Manfred