Pass structs by reference if you expect the callee to modify them.
This fixes kernel boot with gcc41. The gpfault people were seeing comes from
vm86_bioscall() in init386(). The cause is that the assembler code passes the
struct vm86frame by value, i.e. simply creating it on the stack. This worked
up to gcc34, but gcc41 now optimizes stores to unused memory locations away,
whis is allowed per the standards. This led to an uninitialized stack frame
which in turn panicked the box.
Oooohh...-please-commit-by: dillon@
15 files changed: