Hi I have been looking at the set_except_vector function in arch/mips[64]/kernel/traps.c and wondering why the handler address is changed/recalculated before it is stored: *(volatile u32 *)(KSEG0+0x200) = 0x08000000 | (0x03ffffff & (handler >> 2)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Could someone please enlighten me? Thanks Lars Munch