General Protection Fault - Miscellaneous

Miscellaneous

Other causes of general protection faults are:

  • attempting to access an interrupt/exception handler from v86 mode when the handler's code segment descriptor privilege level (DPL) is greater than zero
  • attempting to write a one into the reserved bits of CR4
  • attempting to execute privileged instructions when the current privilege level (CPL) is not zero
  • writing to a reserved bit in an MSR instruction
  • accessing a gate containing a null segment selector
  • executing a software interrupt when the CPL is greater than the DPL set for the interrupt gate
  • the segment selector in a call, interrupt or trap gate does not point to a code segment
  • exceeding the instruction length of 15 bytes
  • violating privilege rules
  • enabling paging whilst disabling protection
  • referencing the interrupt descriptor table following an interrupt or exception that is not an interrupt, trap, or a task gate
  • Legacy SSE: Memory operand is not 16-byte aligned.

Read more about this topic:  General Protection Fault