[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH] X server crashes Xen on xeno-unstable.bk



# > The culprit is the following dereference:
# >
# >      struct domain   *e = page->u.inuse.domain;
# >
# > Where the value of page is undefined if the condition
# >
# >      if ( !(l1v & _PAGE_PRESENT) || !pfn_is_ram(pfn) )
# >
# > does hold. Unfortunately, this condition is checked after the
# > dereference.
# 
# Interesting. I'm guessing the reason we haven't seen this is that we
# don't build on FC3. The newer version of gcc has obviously spotted the
# opportunity to hoist the load.

The compiler I use (3.4.2) did hoist it, but not far enough. It moved
the dereference after the (l1v & _PAGE_PRESENT) condition but before
pfn_is_ram(pfn). pfn_is_ram(pfn) failed because this was video memory.

Looking through memory.c, this was the only case where page was derefenced
before pfn_is_ram() is called.

        Leendert


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.