[parisc-linux] missing barrier in _raw_spin_lock?

Joel Soete soete.joel at tiscali.be
Sat Jan 24 14:07:36 MST 2004



Joel Soete wrote:
> 
> 
> Arnd Bergmann wrote:
> 
>> We stumbled over a problem on s390 that can cause random memory 
>> corruption
>> under high load on SMP. It turned out to be a missing on :"memory" 
>> clobber
>> on the _raw_spin_lock primitive.
>>
>> As far as I can see, the same problem is in the parisc spinlock 
>> definition
>> in linux-2.6.1, but none of the other architectures.
>>
>> The code below demonstrates the problem. With the broken spinlock, the
>> compiler does not emit code for the second "if" or for the assignment.
>> Similar code can be found in mempool_free().
>>
>>     Arnd <><
>>
>> ----
>> #include <linux/spinlock.h>
>>
> hmm yet another stupid question of mine: what would we have to use 
> _linux_/spinlock.h or _asm_/spinlock.h
Oops appologies: the answer is in linux/spinlock (i was just confused because for my c110 I didn't configure SMP)

Thanks for your understand,
	Joel

> 
> Thanks in advance,
>     Joel
> 
> 
>> static int x;
>> static spinlock_t lock;
>>
>> void test(void)
>> {
>>         if (x) {
>>                 spin_lock(&lock);
>>                 if (!x)
>>                         x = 0x1234;
>>                 spin_unlock(&lock);
>>         }
>> }
>>
>> _______________________________________________
>> parisc-linux mailing list
>> parisc-linux at lists.parisc-linux.org
>> http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
>>
> 


More information about the parisc-linux mailing list