Answer and Explanation
In x86, different stacks are used for kernel & user processes because of security purposes.
The kernel assigns the interrupt dispatch to a common kernel interrupt entry/exit
mechanism which saves pre-interrupt register state before summoning the registered handler(s).
When sending out an interrupt might launch a privilege and/or stack switch,
interrupts that occur while executing user process will switch to use the kernel stack in place at that point, without saving current state.