On Thu, 30 Mar 2006, Chen, Kenneth W wrote:
> > > Option (1):
> > >
> > > #define clear_bit clear_bit_mode(..., RELEASE)
> > > #define Smp_mb__before_clear_bit do { } while (0)
> > > #define Smp_mb__after_clear_bit smp_mb()
> > >
> > > Or option (2):
> > >
> > > #define clear_bit clear_bit_mode(..., ACQUIRE)
> > > #define Smp_mb__before_clear_bit smp_mb()
> > > #define Smp_mb__after_clear_bit do { } while (0)
> > >
> > > I'm fine with either one.
> >
> > Neither one is correct because there will always be one combination of
> > clear_bit with these macros that does not generate the required memory
> > barrier.
>
> Can you give an example? Which combination?
For Option(1)
smp_mb__before_clear_bit()
clear_bit(...)(
For Option(2)
clear_bit()
smb_mp_after_clear_bit();
Both have either acquire or release semantics but do not have the effect
of a barrier as required by the macros.
Note that both before and after are used in the core kernel code. Both
must work correctly.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]