[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1145971D427D7F43B0DBDAE22221C4B502CCE22D@nipns00a210.FPS.NIHILENT.COM>
Date: Thu, 17 Jan 2008 12:08:19 +0530
From: "Pravin Nanaware" <p.nanaware@...ilent.com>
To: "John Hubbard" <john.hubbard@...il.com>
Cc: "LKML" <linux-kernel@...r.kernel.org>
Subject: RE: Bitops source problem
Thanks for the reply John.
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));
}
Regards,
Pravin
-----Original Message-----
From: John Hubbard [mailto:john.hubbard@...il.com]
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/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"
> :"=m" (ADDR)
> :"Ir" (nr));
> }
>
> The kernel version I am using is 2.6.9-42. Is it right or am I missing something ?
>
> Thanks,
> Pravin
>
The bitops.h comments are correct: the btc IA-32 instruction is only
atomic if used with the lock prefix. The function above does not use the
lock prefix, so it is not atomic.
thanks,
John Hubbard
-**************Nihilent***************
" *** All information contained in this communication is confidential, proprietary, privileged
and is intended for the addressees only. If youhave received this E-mail in error please notify
mail administrator by telephone on +91-20-39846100 or E-mail the sender by replying to
this message, and then delete this E-mail and other copies of it from your computer system.
Any unauthorized dissemination,publication, transfer or use of the contents of this communication,
with or without modifications is punishable under the relevant law.
Nihilent has scanned this mail with current virus checking technologies. However, Nihilent makes no
representations or warranties to the effect that this communication is virus-free.
Nihilent reserves the right to monitor all E-mail communications through its Corporate Network. *** "
*************************************************************************-
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists