RE: [RFC][PATCH]fix search_extable() to find correct entry

From: Chen, Kenneth W <kenneth.w.chen_at_intel.com>
Date: 2006-06-16 07:21:41
Masami Hiramatsu wrote on Thursday, June 15, 2006 6:27 AM
> I found a suspicious buggy code in the linux kernel on IA64 arch.
> As far as I can see, search_extable() doesn't work correctly, because
> the lookup routine expects that the address format of the
> exception_table_entry is "IP + slot", but the compiler (gcc-3.4.5)
> generates it as "IP + (slot << 2)". Thus the lookup routine always
> fails to find the corresponding entry.
> You can check it by dumping __ex_table section of vmlinux.


Are you sure about the exception table being wrong?  A quick look on my
system indicates that the compiler only generate bundle address, there
is no inter-bundle address in the exception table.

I can explain the data in continuation address. Since there is no exception
code that starts at inter-bundle address, it should always be bundle aligned,
i.e., slot will always be zero.

But the tag address in the table is also bundle aligned, which I will look
a bit more.


# gcc -v
Reading specs from /usr/lib/gcc/ia64-redhat-linux/3.4.5/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk
--host=ia64-redhat-linux
Thread model: posix
gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Jun 16 07:22:25 2006

This archive was generated by hypermail 2.1.8 : 2006-06-16 07:22:35 EST