Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1715185

[PATCH 3.2 24/59] PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms

From Ben Hutchings <ben@decadent.org.uk>
Newsgroups linux.kernel
Subject [PATCH 3.2 24/59] PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
Date 2017-08-18 16:30 +0200
Message-ID <ufQrF-4YI-33@gated-at.bofh.it> (permalink)
References <ufPlU-4d0-25@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


3.2.92-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: David Woodhouse <dwmw@amazon.co.uk>

commit 6bccc7f426abd640f08d8c75fb22f99483f201b4 upstream.

In the PCI_MMAP_PROCFS case when the address being passed by the user is a
'user visible' resource address based on the bus window, and not the actual
contents of the resource, that's what we need to be checking it against.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 drivers/pci/pci-sysfs.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -772,15 +772,19 @@ void pci_remove_legacy_files(struct pci_
 int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma,
 		  enum pci_mmap_api mmap_api)
 {
-	unsigned long nr, start, size, pci_start;
+	unsigned long nr, start, size;
+	resource_size_t pci_start = 0, pci_end;
 
 	if (pci_resource_len(pdev, resno) == 0)
 		return 0;
 	nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
 	start = vma->vm_pgoff;
 	size = ((pci_resource_len(pdev, resno) - 1) >> PAGE_SHIFT) + 1;
-	pci_start = (mmap_api == PCI_MMAP_PROCFS) ?
-			pci_resource_start(pdev, resno) >> PAGE_SHIFT : 0;
+	if (mmap_api == PCI_MMAP_PROCFS) {
+		pci_resource_to_user(pdev, resno, &pdev->resource[resno],
+				     &pci_start, &pci_end);
+		pci_start >>= PAGE_SHIFT;
+	}
 	if (start >= pci_start && start < pci_start + size &&
 			start + nr <= pci_start + size)
 		return 1;

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 3.2 00/59] 3.2.92-rc1 review Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 35/59] [media] dw2102: limit messages to buffer size Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 24/59] PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER  platforms Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 17/59] [media] gspca: konica: add missing endpoint  sanity check Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 13/59] [media] mceusb: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 20/59] [media] cx231xx-cards: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 32/59] [media] ttusb2: limit messages to buffer size Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 02/59] [media] pvrusb2: reduce stack usage  pvr2_eeprom_analyze() Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 22/59] [media] cx231xx-audio: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 04/59] ath9k_htc: Add PID/VID for a Ubiquiti WiFiStation Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 10/59] zd1211rw: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 27/59] PCI: Ignore write combining when mapping I/O  port space Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 06/59] ath9k_htc: Add new USB ID Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 25/59] [media] digitv: limit messages to buffer size Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  [PATCH 3.2 18/59] [media] usbvision: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-08-18 16:30 +0200
  Re: [PATCH 3.2 00/59] 3.2.92-rc1 review Guenter Roeck <linux@roeck-us.net> - 2017-08-18 17:00 +0200

csiph-web