UNDI ISR: save and restore 32-bit registers
authorH. Peter Anvin <hpa@zytor.com>
Sat, 9 Feb 2008 00:19:02 +0000 (16:19 -0800)
committerMichael Brown <mcb30@etherboot.org>
Mon, 11 Feb 2008 15:09:47 +0000 (15:09 +0000)
commitfc9f016be09cff82bfb06fe2c6e13e4f7ab1fce7
tree5dd0884ad92add0ff13932146009fa498900715b
parentf8a0b5f682561bf1e78aef64b16c05cc9ee70902
UNDI ISR: save and restore 32-bit registers

As written, if the if the UNDI ISR call clobbers the upper halves of
any of the GPRs (which by convention it is permitted to do, and by
paranoia should be expected to do) then nothing in the interrupt
handler will recover the state.

Additionally, save/restore %fs and %gs out of sheer paranoia - it's a
cheap enough operation, and may prevent problems due to poorly written
UNDI stacks.
src/arch/i386/drivers/net/undiisr.S