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

Re: [Xen-devel] Problem with modify CR0 of xen kernel



The only bit a pv kernel may modify in CR0 is CR0.TS. If you looked at
the Xen output, you also would have seen a corresponding warning.

Jan

>>> errik <waitingfor2009marry@xxxxxxxxx> 13.12.09 09:44 >>>
Hi All,

   This is a function of a kernel module, but when I calls this function, a
segment fault error happens, I don't know why because the code works well on
other types of kernel such as PAE and default.
 unsigned long clear_and_return_cr0(void)
{
    unsigned long cr0 = 0;
    unsigned long ret;
#ifdef X86_64
    __asm__ __volatile("movq %%cr0, %%rax" : "=a"(cr0));
    ret = cr0;
    cr0 &= 0xfffffffffffeffff;
    __asm__ __volatile__("movq %%rax, %%cr0" : : "a"(cr0));
#else
    __asm__ __volatile("mov %%cr0, %%eax" : "=a"(cr0));
    ret = cr0;
    cr0 &= 0xfffeffff;
    __asm__ __volatile__("mov %%eax, %%cr0" : : "a"(cr0));

#endif
    return ret;
}

May anyone give me some suggestions?

Thanks a lot!
Eric


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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