[PATCH 2/5] powerpc: ftrace, convert to new dynamic ftrace arch API
Michael Ellerman
michael at ellerman.id.au
Mon Nov 24 13:49:36 EST 2008
On Mon, 2008-11-24 at 12:43 +1100, Paul Mackerras wrote:
> Steven Rostedt writes:
>
> > Thanks to Paul Mackennas for pointing out the mistakes of my original
>
> Mackerras
>
> > +static int test_24bit_addr(unsigned long ip, unsigned long addr)
> > +{
> > + long diff;
> > +
> > + /*
> > + * Can we get to addr from ip in 24 bits?
> > + * (26 really, since we mulitply by 4 for 4 byte alignment)
> > + */
> > + diff = addr - ip;
> > +
> > + /*
> > + * Return true if diff is less than 1 << 25
> > + * and greater than -1 << 26.
> > + */
> > + return (diff < (1 << 25)) && (diff > (-1 << 26));
>
> I think this still isn't right, and the comment is one of those ones
> that is only useful to people who can't read C, as it's just a
> transliteration of the code.
>
> The comment should say something like "Return true if diff can be
> represented as a 26-bit twos-complement binary number" and the second
> part of the test should be (diff >= (-1 << 25)). However, since you
> define a test_offset() function in patch 4/5 that does the same test
> but using only one comparison instead of two, why don't you just say:
>
> return !test_offset(diff);
>
> (having first moved test_offset() before test_24bit_addr)?
Or better still, split out and use the code from create_branch() in
arch/powerpc/lib/code-patching.c .. which is hopefully correct :)
cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20081124/0583d985/attachment.pgp>
More information about the Linuxppc-dev
mailing list