sh: use the the PCI channels's io_map_base

commit 43db595e8b
(sh: switch to GENERIC_PCI_IOMAP)
failed to take into account the PCI channels's
io_map_base for mapping IO BARs.
This also caused a new warning on sh.

Fix this, without re-introducing code duplication,
by setting NO_GENERIC_PCI_IOPORT_MAP
and supplying a sh-specific __pci_ioport_map.

Reported-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Michael S. Tsirkin 2012-01-30 00:29:10 +02:00
parent 0f3b3956c4
commit 1e05b62ae4
2 changed files with 3 additions and 2 deletions

View file

@ -859,6 +859,7 @@ config PCI
depends on SYS_SUPPORTS_PCI depends on SYS_SUPPORTS_PCI
select PCI_DOMAINS select PCI_DOMAINS
select GENERIC_PCI_IOMAP select GENERIC_PCI_IOMAP
select NO_GENERIC_PCI_IOPORT_MAP
help help
Find out whether you have a PCI motherboard. PCI is the name of a Find out whether you have a PCI motherboard. PCI is the name of a
bus system, i.e. the way the CPU talks to the other stuff inside bus system, i.e. the way the CPU talks to the other stuff inside

View file

@ -356,7 +356,7 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
#ifndef CONFIG_GENERIC_IOMAP #ifndef CONFIG_GENERIC_IOMAP
static void __iomem *ioport_map_pci(struct pci_dev *dev, void __iomem *__pci_ioport_map(struct pci_dev *dev,
unsigned long port, unsigned int nr) unsigned long port, unsigned int nr)
{ {
struct pci_channel *chan = dev->sysdata; struct pci_channel *chan = dev->sysdata;