On 05/18/2011 10:19 AM, Roedel, Joerg wrote:
> break;
> + case 0x80000008: {
> + u8 g_phys_as = entry->eax>> 16;
> + u8 virt_as = max(entry->eax>> 8, 48U);
Shouldn't that be 'max((entry->eax>> 8)& 0xff, 48U)'? Seems safer when
the entry->eax contains a non-zero g_phys value.
Yes, this is a bug. I originally had 'u8 virt_as = entry->eax >> 8',
relying on the cast to u8, but missed it when updating. Moral: don't be
subtle.
> + u8 phys_as = entry->eax;
> +
> + if (!g_phys_as)
> + g_phys_as = phys_as;
> + entry->eax = g_phys_as | (virt_as<< 8);
It is optional, but since we support nesting we can also encode
g_phys_as in bits 23:16.
I'm relying on a zero value in 23:16 indicating you should use 7:0.
Thanks for the review, will post an updated patch.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html