Re: [PATCH] ftrace: unify arch_syscall_addr() implementations

From: Heiko Carstens
Date: Fri Jan 22 2010 - 11:37:15 EST


On Fri, Jan 22, 2010 at 09:36:17AM -0500, Steven Rostedt wrote:
> [ Added Heiko Carstens and Paul Mundt to Cc ]
>
> On Fri, 2010-01-22 at 08:43 -0500, Mike Frysinger wrote:
> > Every arch_syscall_addr() implementation thus far is the same, so unify
> > them as a default weak in common code so more arches don't have to waste
> > time copying & pasting this simple function. The Blackfin version is
> > going to be exactly the same.
> >
> > Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
> > ---
> > note: only thing that needs double checking is s390 and sparc where they
> > declared the sys_call_table as an array of ints. considering this table
> > is supposed to be an array of function pointers, this seems like more of
> > a typo to me ...
>
> I would not be too sure. s390 is very strange, and I would definitely
> want to get an Ack from the arch maintainers first.

It's not a typo. The syscall table on s390 contains always 32 bit pointers
since we know that the address of the function to be called is (way) below
4GB. So this saves us a few bytes.
In addition this makes syscall patching done by some security modules a
bit more difficult, since they would need to store a 64 bit pointer.
That's because we make sure that module addresses are always above 4GB.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/