>>    __asm__ __volatile__("nop; movl %dr7, %eax;nop");
>
>This piece of inline assembly is incorrect, you should mark as output
>register the registers you clobber.

*ops* I'm not very skilled in Gnu asm
The user task asm istruction is used only to raise an exception (CPL=0 only),
but I can change the example:

insted of the that asm line i write
__asm__ __volatile__(nop; clts;nop;);

and in the kernel module I change the check

- if (*istr == 0x210f && (*(istr+1) & 0xFF) == 0xf8) { // movl %dr7, %eax
-      regs->x86reg_ip+=3;
+if (*istr == 0x060f) { /* clts */
+    regs->x86reg_ip+=2;

the behaviour is always the same... after some loops system hang
(tested with turned on and off all debug options of xenomai)

 Gabriele



Scopri la community di Io fotografo e video
Il nuovo corso di Gazzetta dello sport per diventare veri fotografi!