RE: Bitops source problem

2008-01-17 Thread Pravin Nanaware
I have a CentOS 4.4 system with 2.6.9-42 kernel. I will update the kernel to the new one. Regards, Pravin -Original Message- From: Roland Dreier [mailto:[EMAIL PROTECTED] Sent: Friday, January 18, 2008 1:03 AM To: Pravin Nanaware Cc: John Hubbard; LKML Subject: Re: Bitops source

Re: Bitops source problem

2008-01-17 Thread Roland Dreier
> Yes, indeed none of the atomic bit operations functions has > LOCK_PREFIX in my version of Linux kernel. You have a broken source tree then. Where did your kernel source come from then? I'm not able to find any version of asm-i386/bitops.h where clear_bit() doesn't have LOCK_PREFIX in any

RE: Bitops source problem

2008-01-17 Thread Pravin Nanaware
Hubbard; LKML Subject: Re: Bitops source problem > Then, I think there is a problem with the function written below which is > meant to be atomic. > > static __inline__ void change_bit(int nr, volatile void * addr) > { > __asm__ __volatile__( >

Re: Bitops source problem

2008-01-17 Thread Roland Dreier
Yes, indeed none of the atomic bit operations functions has LOCK_PREFIX in my version of Linux kernel. You have a broken source tree then. Where did your kernel source come from then? I'm not able to find any version of asm-i386/bitops.h where clear_bit() doesn't have LOCK_PREFIX in any of

RE: Bitops source problem

2008-01-17 Thread Pravin Nanaware
I have a CentOS 4.4 system with 2.6.9-42 kernel. I will update the kernel to the new one. Regards, Pravin -Original Message- From: Roland Dreier [mailto:[EMAIL PROTECTED] Sent: Friday, January 18, 2008 1:03 AM To: Pravin Nanaware Cc: John Hubbard; LKML Subject: Re: Bitops source

Re: Bitops source problem

2008-01-16 Thread KOSAKI Motohiro
Hi > If that is indeed the source of your change_bit function then there is > a problem. However in my kernel tree there is a LOCK_PREFIX in the > definition of the atomic version. I don't have your exact source tree > handy, but on a local RHEL4 system, the LOCK_PREFIX is still there: > >

Re: Bitops source problem

2008-01-16 Thread Roland Dreier
> Then, I think there is a problem with the function written below which is > meant to be atomic. > > static __inline__ void change_bit(int nr, volatile void * addr) > { > __asm__ __volatile__( > "btcl %1,%0" > :"=m" (ADDR) > :"Ir"

RE: Bitops source problem

2008-01-16 Thread Pravin Nanaware
"=m" (ADDR) :"Ir" (nr)); } Regards, Pravin -Original Message- From: John Hubbard [mailto:[EMAIL PROTECTED] Sent: Thursday, January 17, 2008 11:17 AM To: Pravin Nanaware Cc: LKML Subject: Re: Bitops source problem Pravin Nanaware wrote: > Hi, > > I was just goi

Re: Bitops source problem

2008-01-16 Thread John Hubbard
Pravin Nanaware wrote: Hi, I was just going through the include file in the /usr/include/asm/bitops.h The function description describes it as non-atomic but it seems it is not. static __inline__ void __change_bit(int nr, volatile void * addr) { __asm__ __volatile__(

Bitops source problem

2008-01-16 Thread Pravin Nanaware
Hi, I was just going through the include file in the /usr/include/asm/bitops.h The function description describes it as non-atomic but it seems it is not. static __inline__ void __change_bit(int nr, volatile void * addr) { __asm__ __volatile__( "btcl %1,%0"

Bitops source problem

2008-01-16 Thread Pravin Nanaware
Hi, I was just going through the include file in the /usr/include/asm/bitops.h The function description describes it as non-atomic but it seems it is not. static __inline__ void __change_bit(int nr, volatile void * addr) { __asm__ __volatile__( btcl %1,%0

Re: Bitops source problem

2008-01-16 Thread John Hubbard
Pravin Nanaware wrote: Hi, I was just going through the include file in the /usr/include/asm/bitops.h The function description describes it as non-atomic but it seems it is not. static __inline__ void __change_bit(int nr, volatile void * addr) { __asm__ __volatile__(

RE: Bitops source problem

2008-01-16 Thread Pravin Nanaware
)); } Regards, Pravin -Original Message- From: John Hubbard [mailto:[EMAIL PROTECTED] Sent: Thursday, January 17, 2008 11:17 AM To: Pravin Nanaware Cc: LKML Subject: Re: Bitops source problem Pravin Nanaware wrote: Hi, I was just going through the include file in the /usr/include

Re: Bitops source problem

2008-01-16 Thread Roland Dreier
Then, I think there is a problem with the function written below which is meant to be atomic. static __inline__ void change_bit(int nr, volatile void * addr) { __asm__ __volatile__( btcl %1,%0 :=m (ADDR) :Ir (nr)); } If

Re: Bitops source problem

2008-01-16 Thread KOSAKI Motohiro
Hi If that is indeed the source of your change_bit function then there is a problem. However in my kernel tree there is a LOCK_PREFIX in the definition of the atomic version. I don't have your exact source tree handy, but on a local RHEL4 system, the LOCK_PREFIX is still there: static