I'm sorry I said the wrong thing. First of all, page fault isn't blocked by cli instuction. Page fault is a type of fulat(not a interrupt) This log is printed from the page fault handler. > [ 4024.792614] #PF: supervisor write access in kernel mode > [ 4024.793944] #PF: error_code(0x0002) - not-present page > [ 4024.794920] PGD 0 P4D 0 But, the strange thing is that the address where the page fault occurred is a strange address(0x000000008004020b). This address looks similar to the value of cr0. Adding 8*59 to this cr0 value immediately results in the address where the page fault occurred. cr0 = 0x0000000080040033 cr2 = 0x000000008004020B cr2 == cr0[59] This is because the rax register was missing from the clobber field of the inline assembly.
_______________________________________________ Kernelnewbies mailing list [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
