[PATCH] Update PCI IOMEM allocation start
authorDaniel Ritz <daniel.ritz@gmx.ch>
Thu, 8 Sep 2005 22:57:14 +0000 (00:57 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 9 Sep 2005 22:25:46 +0000 (15:25 -0700)
commitf0eca9626c6becb6fc56106b2e4287c6c784af3d
tree552a52f367d9d964d4ac3f86ccacfd538aa610c3
parent41d0ab2a7dfe9e25504169c98eac5e84e5509e3d
[PATCH] Update PCI IOMEM allocation start

This fixes the problem with "Averatec 6240 pcmcia_socket0: unable to
apply power", which was due to the CardBus IOMEM register region being
allocated at an address that was actually inside the RAM window that had
been reserved for video frame-buffers in an UMA setup.

The BIOS _should_ have marked that region reserved in the e820 memory
descriptor tables, but did not.

It is fixed by rounding up the default starting address of PCI memory
allocations, so that we leave a bigger gap after the final known memory
location.  The amount of rounding depends on how big the unused memory
gap is that we can allocate IOMEM from.

Based on example code by Linus.

Acked-by: Greg KH <greg@kroah.com>
Acked-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/setup.c
arch/x86_64/kernel/e820.c