Re: [patch] x86_64, vsyscall: fix the oops crash with __pa_vsymbol()

From: Andi Kleen
Date: Wed Oct 10 2007 - 09:40:46 EST


On Wednesday 10 October 2007 03:59:22 Siddha, Suresh B wrote:
> Appended patch fixes an oops while changing the vsyscall sysctl.
> I am sure no one tested this code before integrating into mainline :(

The original code worked, but got broken by 0dbf7028c0c1f266c9631139450a1502d3cd457e
>
> BTW, using ioremap() in vsyscall_sysctl_change() to get the virtual
> address of a kernel symbol sounds like an over kill.

Another point was to get a writable mapping. At some point we had write
protected kernels, although that was later then removed again.

> And also, the whole nop out syscall in vsyscall page infrastructure
> (vsyscall_sysctl_change()) is added to make some attacks difficult,
> and yet I don't see this nop out being done by default. This area
> requires more cleanups?

It used to be done, but it is difficult with the changing vreads
in timesources and was probably disabled then. Yes you're right right now
it looks dubious.

It needs to be updated when the timesource is updated.

-Andi

-
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/