• Yinghai Lu's avatar
    powerpc/pci: Remove __pci_mmap_set_pgprot() · 1e70cdd6
    Yinghai Lu authored
    The powerpc-specific __pci_mmap_set_pgprot() does two things:
    
      1) Disables write combining for I/O port space mappings
    
         This only affects procfs mappings.  The pci_mmap_resource() sysfs path
         only requests write combining for resources with IORESOURCE_PREFETCH
         set, which doesn't include I/O resources.
    
         The only way to request write combining for I/O port space mappings
         was via the PCIIOC_WRITE_COMBINE ioctl and the proc_bus_pci_mmap()
         path, and we recently changed that path to ignore write combining for
         I/O, so this code in powerpc is no longer needed.
    
      2) Automatically enables write combining for mappings of prefetchable
         resources, even if not requested by the user
    
         Both procfs (via PCIIOC_MMAP_IS_MEM and PCIIOC_WRITE_COMBINE ioctls)
         and sysfs (via "resourceN_wc" files, which are created for resources
         with IORESOURCE_PREFETCH) provide ways for the user to map PCI memory
         space with write combining.
    
         Users that desire write combining should use one of those ways instead
         of relying on powerpc-specific behavior.
    
    Remove the powerpc-specific __pci_mmap_set_pgprot().
    
    The user-visible effect of this change is that powerpc users mapping
    prefetchable PCI memory space via procfs without PCIIOC_WRITE_COMBINE or
    via sysfs "resourceN" (not "resourceN_wc") will get regular uncacheable
    mappings instead of the write combining mappings they used to get.
    
    The new behavior matches the behavior on all other arches that support
    write combining mapping.
    
    [bhelgaas: changelog]
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    1e70cdd6
pci-common.c 45.7 KB