All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: linux-pci@vger.kernel.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 00/17] PCI resource mmap cleanup
Date: Wed, 22 Mar 2017 13:25:14 +0000	[thread overview]
Message-ID: <cover.1490188942.git.dwmw2@infradead.org> (raw)

This started out as a fairly trivial "add pci_mmap_page_range() for 
ARM64" patch. But pci_mmap_page_range() is a vile interface, taking 
"user visible" resource addresses converted with pci_resource_to_user() 
on those platforms unlucky enough to use that... and even in the *sane* 
sysfs-based mmap method, we convert through user addresses to call the
platform-specific method.

In most cases there's just no need for any of this crap. We can migrate
most architectures to a generic implementation without much thought,
and the few that aren't converted in this series can probably be added
fairly easily too but need a little more arch-specific attention.

Utterly untested for now; I'll do some testing while I deal with the
inevitable bikeshedding.

David Woodhouse (17):
  pci: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
  pci: Fix another sanity check bug in /proc/pci mmap
  pci: Only allow WC mmap on prefetchable resources
  pci: Add arch_can_pci_mmap_wc() macro
  pci: Move multiple declarations of pci_mmap_page_range() to <linux/pci.h>
  pci: Add HAVE_PCI_MMAP_IO to architectures which can mmap() I/O space
  pci: Use BAR index in sysfs attr->private instead of resource pointer
  pci: Add BAR index argument to pci_mmap_page_range()
  pci: Add pci_mmap_resource_range() and use it for ARM64
  arm: Use generic pci_mmap_resource_range()
  cris: Use generic pci_mmap_resource_range()
  mips: Use generic pci_mmap_resource_range()
  mn10300: Use generic pci_mmap_resource_range()
  parisc: Use generic pci_mmap_resource_range()
  sh: Use generic pci_mmap_resource_range()
  unicore: Use generic pci_mmap_resource_range()
  arm64: Do not expose PCI mmap through procfs

 Documentation/filesystems/sysfs-pci.txt |  9 +++-
 arch/arm/include/asm/pci.h              |  3 +-
 arch/arm/kernel/bios32.c                | 19 -------
 arch/arm64/include/asm/pci.h            |  3 ++
 arch/cris/arch-v32/drivers/pci/bios.c   | 22 --------
 arch/cris/include/asm/pci.h             |  4 +-
 arch/ia64/include/asm/pci.h             |  4 +-
 arch/ia64/pci/pci.c                     |  3 +-
 arch/microblaze/include/asm/pci.h       |  6 +--
 arch/microblaze/pci/pci-common.c        |  2 +-
 arch/mips/include/asm/pci.h             |  5 +-
 arch/mips/pci/pci.c                     | 24 ---------
 arch/mn10300/include/asm/pci.h          |  4 +-
 arch/mn10300/unit-asb2305/pci-asb2305.c | 23 ---------
 arch/parisc/include/asm/pci.h           |  4 +-
 arch/parisc/kernel/pci.c                | 28 ----------
 arch/powerpc/include/asm/pci.h          |  9 ++--
 arch/powerpc/kernel/pci-common.c        |  3 +-
 arch/sh/drivers/pci/pci.c               | 21 --------
 arch/sh/include/asm/pci.h               |  4 +-
 arch/sparc/include/asm/pci_64.h         |  5 +-
 arch/sparc/kernel/pci.c                 |  6 +--
 arch/unicore32/include/asm/pci.h        |  3 +-
 arch/unicore32/kernel/pci.c             | 23 ---------
 arch/x86/include/asm/pci.h              |  6 +--
 arch/x86/pci/i386.c                     |  3 +-
 arch/xtensa/include/asm/pci.h           | 11 ++--
 arch/xtensa/kernel/pci.c                |  5 +-
 drivers/pci/Makefile                    |  2 +-
 drivers/pci/mmap.c                      | 90 +++++++++++++++++++++++++++++++++
 drivers/pci/pci-sysfs.c                 | 77 +++++++++++++---------------
 drivers/pci/proc.c                      | 55 ++++++++++++++------
 include/linux/pci.h                     | 19 +++++++
 33 files changed, 233 insertions(+), 272 deletions(-)
 create mode 100644 drivers/pci/mmap.c

-- 
2.9.3

             reply	other threads:[~2017-03-22 13:25 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 13:25 David Woodhouse [this message]
2017-03-22 13:25 ` [PATCH 01/17] pci: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms David Woodhouse
2017-03-22 13:25 ` [PATCH 02/17] pci: Fix another sanity check bug in /proc/pci mmap David Woodhouse
2017-03-22 13:25 ` [PATCH 03/17] pci: Only allow WC mmap on prefetchable resources David Woodhouse
2017-03-24 16:05   ` Arnd Bergmann
2017-03-24 17:04     ` David Woodhouse
2017-03-22 13:25 ` [PATCH 04/17] pci: Add arch_can_pci_mmap_wc() macro David Woodhouse
2017-04-04 21:36   ` Bjorn Helgaas
2017-04-05  7:22     ` David Woodhouse
2017-03-22 13:25 ` [PATCH 05/17] pci: Move multiple declarations of pci_mmap_page_range() to <linux/pci.h> David Woodhouse
2017-03-22 13:25 ` [PATCH 06/17] pci: Add HAVE_PCI_MMAP_IO to architectures which can mmap() I/O space David Woodhouse
2017-03-22 13:25 ` [PATCH 07/17] pci: Use BAR index in sysfs attr->private instead of resource pointer David Woodhouse
2017-03-22 13:25 ` [PATCH 08/17] pci: Add BAR index argument to pci_mmap_page_range() David Woodhouse
2017-03-22 13:25 ` [PATCH 09/17] pci: Add pci_mmap_resource_range() and use it for ARM64 David Woodhouse
2017-03-22 13:25 ` [PATCH 10/17] arm: Use generic pci_mmap_resource_range() David Woodhouse
2017-03-22 13:25 ` [PATCH 11/17] cris: " David Woodhouse
2017-03-22 13:33   ` Jesper Nilsson
2017-03-22 13:25 ` [PATCH 12/17] mips: " David Woodhouse
2017-03-22 13:25 ` [PATCH 13/17] mn10300: " David Woodhouse
2017-03-22 13:25 ` [PATCH 14/17] parisc: " David Woodhouse
2017-03-22 13:25 ` [PATCH 15/17] sh: " David Woodhouse
2017-03-22 13:25 ` [PATCH 16/17] unicore: " David Woodhouse
2017-03-22 13:25 ` [PATCH 17/17] arm64: Do not expose PCI mmap through procfs David Woodhouse
2017-03-22 13:54   ` Sinan Kaya
2017-03-22 14:04     ` David Woodhouse
2017-03-22 14:15       ` Sinan Kaya
2017-03-22 14:18         ` Will Deacon
2017-03-22 15:40           ` Sinan Kaya
2017-03-24 16:13   ` Arnd Bergmann
2017-03-24 16:16     ` Arnd Bergmann
2017-03-24 16:23       ` David Woodhouse
2017-03-24 16:20     ` David Woodhouse
2017-03-23 14:29 ` [PATCH 18/17] x86: Use generic pci_mmap_resource_range() David Woodhouse
2017-03-24 11:40 ` [PATCH 00/17] PCI resource mmap cleanup David Woodhouse
2017-03-24 16:57   ` Luck, Tony
2017-03-24 16:20 ` Arnd Bergmann
2017-04-04 22:43 ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1490188942.git.dwmw2@infradead.org \
    --to=dwmw2@infradead.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.