|
|
|
|
|
|
|
|
|
|
xen-devel
[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
|
|
|
|
|