PCI legacy resource fix
authorRalf Baechle <ralf@linux-mips.org>
Tue, 19 Dec 2006 21:12:08 +0000 (13:12 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 20 Dec 2006 18:54:43 +0000 (10:54 -0800)
commitfb0f2b40faff41f03acaa2ee6e6231fc96ca497c
tree10f2f69cb43d6440313bb3efdc53ca69334830c0
parent7e7a43c32a8970ea2bfc3d1af353dcb1a9237769
PCI legacy resource fix

Since commit 368c73d4f689dae0807d0a2aa74c61fd2b9b075f the kernel will try
to update the non-writeable BAR registers 0..3 of PIIX4 IDE adapters if
pci_assign_unassigned_resources() is used to do full resource assignment of
the bus.  This fails because in the PIIX4 these BAR registers have
implicitly assumed values and read back as zero; it used to work because
the kernel used to just write zero to that register the read back value did
match what was written.

The fix is a new resource flag IORESOURCE_PCI_FIXED used to mark a resource
as non-movable.  This will also be useful to keep other import system
resources from being moved around - for example system consoles on PCI
busses.

[akpm@osdl.org: cleanup]
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/probe.c
drivers/pci/setup-res.c
include/linux/ioport.h