Hollis Blanchard wrote:
On Wed, 2007-07-11 at 14:12 +0200, Christian Ehrhardt wrote:
I added a new inline function "invalid_endianness" for better readability.
An invalid address now returns -EINVAL and triggers a WARN_ON().
If a more sophisticated check is wanted later on like a additional >0x0C
or something we can add this there on a central point.
If we will need it somewhere else in the future we can move it to a header.
Perhaps these messages should be quieted a little:
(XEN) pfn2mfn: Dom pfn 0x3f875eb000000 is not a valid page
(XEN) paddr_to_maddr: Dom:0 bad paddr: 0x3f875eb000000000
This only occurs when something goes really wrong, so why silence it?
We may move the sanity check from the kernel down here.
I think the xen portion just does what it was designed for, it receives
an address and tries to translate it. In our scenario the userspace sets
up a wrong padded structure which lead to misinterpretation of the
address. Therefore the fix is in userspace, but now we know this issue
we can add some sanity checks to make this issue more visible if it
occurs which is what I've done with my patch.
The question is now where to add such a sanity check - I'm open to every
suggestion. The Kernel patch I sent should be such a standard "I'm a
syscall and I do sanity checks on the values passed to me before using
It also looks like we need to have the callers of paddr_to_maddr()
(within Xen) do some error-checking and return the error.
The "solution" for the current issue is what was checked in to the
libvirt cvs last week and fixes the initial call from userspace.
Let's discuss this via phone today where to add the sanity check and I
think we find the solution satisfying both of us much faster ;-)
However, it isn't the kernel's job to be checking these addresses, so
this patch isn't the right solution.
Grüsse / regards,
IBM Linux Technology Center, Open Virtualization
IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Johann Weihen
Geschäftsführung: Herbert Kircher
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
Xen-ppc-devel mailing list