2005-11-15 04:04:26

by Zachary Amsden

[permalink] [raw]
Subject: Does anyone undefine APM_RELAX_SEGMENTS?

Rohit Seth wrote:

>On Thu, 2005-11-10 at 00:23 -0800, [email protected] wrote:
>
>
>>The patch titled
>>
>> x86: Always relax segments
>>
>>has been added to the -mm tree. Its filename is
>>
>> x86-always-relax-segments.patch
>>
>>
>>From: Zachary Amsden <[email protected]>
>>
>>APM BIOSes have many bugs regarding proper representation of the appropriate
>>segment limits for calling the BIOS. By default, APM_RELAX_SEGMENTS is always
>>turned on to support running the APM BIOS on these buggy machines. Keeping
>>64k limits poses very little danger to the kernel, because the pages where the
>>APM BIOS is located will always be in low physical memory BIOS areas, which
>>should already be marked reserved, and only buggy BIOSes would possibly
>>overstep the segment bounds with writes to data anyway.
>>
>>Since forcing stricter limits breaks many machines and is not default
>>behavior, it seems reasonable to deprecate the older code which may cause APM
>>BIOS to fault.
>>
>>
>>
>
>But I presume it make some other machines to work?
>
>

It would make the APM thread panic on machines with broken APM BIOS -
which is not very useful except for proving a BIOS bug. But APM is
inherently safer than PnP, since there is no transfer segment which can
corrupt arbitrary kernel memory.

In the history of its introduction, I can not find a single distribution
or use which undefines this macro. If anyone knows otherwise, please
advise.

Zach