Hi,
if (extra_stack) {
I'm also not sure on the cause, but I think it should be safe to change this to:
if (extra_stack || flags & MF_LEGACY) {
because if this is a legacy call then it should be safe to write to highmem even if the last call was a vesa modeset.
Tested, works with windows.
cheers, Gerd