On 8 July 2011 19:32, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Fri, 8 Jul 2011, Dave Martin wrote:
On Fri, Jul 08, 2011 at 12:21:27AM +0100, David Gilbert wrote:
Nicolas just added; Richard's argument is that if it was actually a VDSO I'd just have linked against a symbol and if the symbol wasn't there then I would have got a fairly normal linker error - I wouldn't have needed any special code; and to be honest I think that would also solve the problem that accessing that wacky address is also a pain for things like qemu because we're going to have to intercept that read.
Note that pre-existing code already calls into the vectors page.
Right, qemu must be intercepting it already. The kernel helpers located at a fixed address in the vector page have been around for more than 6 years.
QEMU supports calls into the fixed vector page (it just special cases attempts to execute at addresses >= 0xffff0000 and emits code to do "cause special purpose exception" so we get control back at runtime). What it doesn't support is attempts to do a load from the vector page, because so far nobody has had a need to probe the vector page for what it supports.
-- PMM