You can't, because not all traps to the system disable interrupts.
This means that another interrupt can occur after the stack frame has
been pushed, but before swapgs has been run the first time.
It really is a lot easier to just load a pointer from a fixed address.
-Matt
Matthew Dillon
<dillon@backplane.com>