All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH] Replace XFS bit functions with Linux functions
Date: Tue, 2 Oct 2007 12:11:47 +0200	[thread overview]
Message-ID: <200710021211.47718.ak@suse.de> (raw)
In-Reply-To: <20071002095525.GA25405@infradead.org>


> 
> >  	while (fields) {
> > -		f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields);
> > +		f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64);
> 
> I don't think we should add the case here but rather pass the fields
> varialble as an unsigned long to start with.

I actually did this first, but ran into some issues I unfortunately can't remember right 
now so I reverted it to the cast.

> 
> > @@ -1428,11 +1428,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi
> >  
> >  	/* find modified range */
> >  
> > -	f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields);
> > +	f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64);
> >  	ASSERT((1LL << f) & XFS_SB_MOD_BITS);
> >  	first = xfs_sb_info[f].offset;
> >  
> > -	f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields);
> > +	f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1;
> 
> Same here.

The casts here are actually not needed, but I was too lazy to remove them
(they also don't hurt) 

> 
> > +/* All callers check for 0 arguments already; so no -1 handling */
> > +static inline int xfs_rtlobit(unsigned long v)
> > +{
> > +	return find_first_bit(&v, 32);
> > +}
> > +
> > +#define	XFS_RTLOBIT(w)  xfs_rtlobit(w)
> 
> I think just a
> 
> #define	XFS_RTLOBIT(w)	find_first_bit(&(w), 32)
> 
> should be fine. 

Nope -- not all callers pass sufficiently aligned unsigned longs
as ffb requires.

> Or make it just an inline, but not both a macro an 
> an inline.

That should be probably done as a separate patch because there
are much more macros that need this treatment in the rt code.

-Andi

  reply	other threads:[~2007-10-02 10:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-02  8:10 [PATCH] Replace XFS bit functions with Linux functions Andi Kleen
2007-10-02  9:55 ` Christoph Hellwig
2007-10-02 10:11   ` Andi Kleen [this message]
2007-10-02 12:59 ` David Chinner
2007-10-02 13:35   ` Andi Kleen
2007-10-02 16:37 ` Russell Cattelan
2007-10-03 17:58   ` Andi Kleen
2007-10-03 18:20     ` Russell Cattelan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200710021211.47718.ak@suse.de \
    --to=ak@suse.de \
    --cc=hch@infradead.org \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.