On Tue, Aug 09, 2005 at 05:14:14PM +0100, Keir Fraser wrote:
> On 9 Aug 2005, at 16:44, Gerd Knorr wrote:
> >Hmm, that happens when xen is build with debug=y only, without
> >that it crashes much earlier ...
> Weird. The calls to create_pae_xen_mappings were definitely on the
> error paths in mod_l3_entry(), which is obviously wrong. I'm surprised
> that fixing it would make things worse, unless some other patch in the
> meantime has screwed pae...
No, it's actually the changeset
6056:a1f7e01b0990a378584e718e6d48eac38824fdb9 which broke it.
The create_pae_xen_mappings() call in the error path is broken
indead. That must have sneaked in somewhen, I'm pretty sure I
wrote that initially as something like
if ( unlikely(!UPDATE_ENTRY(l3, pl3e, ol3e, nl3e)) ||
so create_pae_xen_mappings() failure (due to the guest OS trying
illegal things) will *trigger* the error path. Strange it never
showed up, maybe linux never ever updates l3 entries after
BUG_ON(!create_pae_xen_mappings()) is a bad idea, it _can_ fail,
the failure should just be propagated up (so in the end the
hypercall running into this returns some errror) or the domain
should simply be killed ...
panic("it works"); /* avoid being flooded with debug messages */
Xen-devel mailing list