linux/arch
Zachary Amsden 3012d2d209 [PATCH] x86: Always relax segments
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.

If you really have a badly enough broken APM BIOS that you have to turn off
APM_RELAX_SEGMENTS, seems like the best recourse here would be to disable the
APM BIOS and / or not compile it into your kernel to begin with, and / or add
your system to the known bad list.

The reason I want to deprecate this code is there is underlying brokenness
with the set_limit macros, and getting rid of many of the call sites rather
than rewriting them seems to be the simplest and most correct course of
action.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Acked-by: "Seth, Rohit" <rohit.seth@intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-06 08:33:34 -08:00
..
alpha [PATCH] arch/alpha/kernel/machvec_impl.h: C99 struct initializer 2005-12-15 10:04:31 -08:00
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6 2006-01-04 18:44:12 -08:00
arm26 arch/arm26/nwfpe/fpmodule.c: remove kernel 2.0 #ifdef 2006-01-03 13:42:12 +01:00
cris [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
frv [PATCH] frv: improve signal handling 2006-01-06 08:33:33 -08:00
h8300 [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
i386 [PATCH] x86: Always relax segments 2006-01-06 08:33:34 -08:00
ia64 [IA64] Fix compile warnings in setup.c 2006-01-05 13:30:52 -08:00
m32r [PATCH] m32r: M3A-2170(Mappi-III) IDE support 2005-11-28 14:42:24 -08:00
m68k [PATCH] m68k: convert thread flags to use bit fields 2005-11-13 18:14:14 -08:00
m68knommu [PATCH] m68knommu: move some platform irq support out of irq.h 2005-11-07 08:00:47 -08:00
mips Relax the rw_verify_area() error checking. 2006-01-04 16:20:40 -08:00
parisc [PARISC] Remove unused variable in signal.c 2005-11-17 16:43:52 -05:00
powerpc [PATCH] driver core: replace "hotplug" by "uevent" 2006-01-04 16:18:08 -08:00
ppc [PATCH] ppc32: Re-add embed_config.c to ml300/ep405 2006-01-06 08:33:31 -08:00
s390 [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sh [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sh64 [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sparc [SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S 2005-12-28 13:22:54 -08:00
sparc64 [SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S 2005-12-28 13:22:54 -08:00
um [PATCH] uml: fix compilation with CONFIG_MODE_TT disabled 2005-12-29 09:48:15 -08:00
v850 [PATCH] v850: use generic hardirq code 2005-11-15 08:59:20 -08:00
x86_64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-01-04 16:36:52 -08:00
xtensa Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-11 09:24:26 -08:00