Re: [PATCH] search_one_table()

Brian Gerst (bgerst@didntduck.org)
Tue, 13 Nov 2001 17:42:38 -0500


Per Persson wrote:
>
> I found that gcc doesn't manage to do this rewrite itself. My micro-patch
> saves a few bytes. Also the code becomes a little bit cleaner (IMHO).
>
> Probably the same change could (and should) be made for the other
> architectures too.
>
> Per Persson
> per.persson@gnosjo.pp.se
>
> --- arch/i386/mm/extable.c.orig Mon Nov 12 00:13:52 2001
> +++ arch/i386/mm/extable.c Tue Nov 13 17:39:42 2001
> @@ -19,7 +19,7 @@
> const struct exception_table_entry *mid;
> long diff;
>
> - mid = (last - first) / 2 + first;
> + mid = (last + first) / 2
> diff = mid->insn - value;
> if (diff == 0)
> return mid->fixup;
>

This change will not work because of lost high bits due to overflow.
Remember that kernel addresses are in the 0xc0000000-0xffffffff range.

--

Brian Gerst - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/