Ravikiran G Thirumalai <[EMAIL PROTECTED]> wrote: > > On Wed, Mar 08, 2006 at 03:43:21PM -0800, Andrew Morton wrote: > > Benjamin LaHaise <[EMAIL PROTECTED]> wrote: > > > > > > I think it may make more sense to simply convert local_t into a long, > > > given > > > that most of the users will be things like stats counters. > > > > > > > Yes, I agree that making local_t signed would be better. It's consistent > > with atomic_t, atomic64_t and atomic_long_t and it's a bit more flexible. > > > > Perhaps. A lot of applications would just be upcounters for statistics, > > where unsigned is desired. But I think the consistency argument wins out. > > It already is... for most of the arches except x86_64.
x86 uses unsigned long. > And on -mm, the asm-generic version uses atomic_long_t for local_t (signed > long) which seems right. No, it uses unsigned long. The only place where signedness matters is local_read(), and there it is typecast to ulong. > Although, I wonder why we use: > > #define local_read(l) ((unsigned long)atomic_long_read(&(l)->a)) > > It would return a huge value if the local counter was even -1 no? It's casting a signed long to an unsigned long. That does the right thing. Yes, it'll convert -1 to 0xffffffff[ffffffff]. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html