Re: [PATCH] mark %esi as clobbered in E820 BIOS call

From: H. Peter Anvin
Date: Sat Mar 28 2009 - 15:19:15 EST


Ingo Molnar wrote:
> * Michael K. Johnson <johnsonm@xxxxxxxxx> wrote:
>
>> Justin and Peter, please review this for stable .y trees. Peter,
>> please review this for trunk unless you decide to do a more
>> extensive workaround for BIOS register clobbering.
>>
>> Thanks!
>>
>> $ cat e820-esi-clobber-workaround.patch
>> Jordan Hargrave diagnosed a BIOS clobbering %esi in the E820 call.
>> That particular BIOS has been fixed, but there is a possibility that
>> this is responsible for other occasional reports of early boot
>> failure, and it does not hurt to add %esi to the clobbers.
>
> nice fix! Would you mind to update the clobber list to include _all_
> registers? I dont see why any of the other registers couldnt be
> clobbered by a BIOS, and this is boot-only code so micro-performance
> is not an issue.

%esi and %ebp are the only registers that aren't already clobbered. gcc
doesn't like %ebp clobbers, so it has to be done via push..pop. I have
been thinking about doing a generic register-save wrapper for *all* BIOS
calls; this plus the recent patch to do a bunch of similar hacks for
VESA calls kind of tells me it's time to do this. However, I'm going to
clean up this for the trunk and Cc: stable for now.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/