aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw@amazon.co.uk>2017-04-12 08:25:58 -0400
committerBjorn Helgaas <bhelgaas@google.com>2017-04-20 09:47:47 -0400
commitf66e225828c1b046c7db1db65b0dd2d135f6a2da (patch)
tree69056a22a4d9afcacdc99779741f65f78f0d6cc0
parentdca40b186b757c7f9a05f870f69e0dfaeca59d7b (diff)
PCI: Add BAR index argument to pci_mmap_page_range()
In all cases we know which BAR it is. Passing it in means that arch code (or generic code; watch this space) won't have to go looking for it again. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-rw-r--r--arch/arm/kernel/bios32.c3
-rw-r--r--arch/cris/arch-v32/drivers/pci/bios.c3
-rw-r--r--arch/ia64/pci/pci.c3
-rw-r--r--arch/microblaze/pci/pci-common.c2
-rw-r--r--arch/mips/pci/pci.c3
-rw-r--r--arch/mn10300/unit-asb2305/pci-asb2305.c3
-rw-r--r--arch/parisc/kernel/pci.c3
-rw-r--r--arch/powerpc/kernel/pci-common.c3
-rw-r--r--arch/sh/drivers/pci/pci.c3
-rw-r--r--arch/sparc/kernel/pci.c6
-rw-r--r--arch/unicore32/kernel/pci.c3
-rw-r--r--arch/x86/pci/i386.c3
-rw-r--r--arch/xtensa/kernel/pci.c3
-rw-r--r--drivers/pci/pci-sysfs.c2
-rw-r--r--drivers/pci/proc.c2
-rw-r--r--include/linux/pci.h3
16 files changed, 30 insertions, 18 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 2f0e07735d1d..a4fc3f46eeae 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -597,7 +597,8 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
597 return start; 597 return start;
598} 598}
599 599
600int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 600int pci_mmap_page_range(struct pci_dev *dev, int bar,
601 struct vm_area_struct *vma,
601 enum pci_mmap_state mmap_state, int write_combine) 602 enum pci_mmap_state mmap_state, int write_combine)
602{ 603{
603 if (mmap_state == pci_mmap_io) 604 if (mmap_state == pci_mmap_io)
diff --git a/arch/cris/arch-v32/drivers/pci/bios.c b/arch/cris/arch-v32/drivers/pci/bios.c
index 212266a2c5d9..a589686d5448 100644
--- a/arch/cris/arch-v32/drivers/pci/bios.c
+++ b/arch/cris/arch-v32/drivers/pci/bios.c
@@ -14,7 +14,8 @@ void pcibios_set_master(struct pci_dev *dev)
14 pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); 14 pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
15} 15}
16 16
17int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 17int pci_mmap_page_range(struct pci_dev *dev, int bar,
18 struct vm_area_struct *vma,
18 enum pci_mmap_state mmap_state, int write_combine) 19 enum pci_mmap_state mmap_state, int write_combine)
19{ 20{
20 unsigned long prot; 21 unsigned long prot;
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 8f6ac2f8ae4c..053c688b15a5 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -419,7 +419,8 @@ pcibios_align_resource (void *data, const struct resource *res,
419} 419}
420 420
421int 421int
422pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, 422pci_mmap_page_range (struct pci_dev *dev, int bar,
423 struct vm_area_struct *vma,
423 enum pci_mmap_state mmap_state, int write_combine) 424 enum pci_mmap_state mmap_state, int write_combine)
424{ 425{
425 unsigned long size = vma->vm_end - vma->vm_start; 426 unsigned long size = vma->vm_end - vma->vm_start;
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c
index 13bc93242c0c..404fb38d06b7 100644
--- a/arch/microblaze/pci/pci-common.c
+++ b/arch/microblaze/pci/pci-common.c
@@ -278,7 +278,7 @@ pgprot_t pci_phys_mem_access_prot(struct file *file,
278 * 278 *
279 * Returns a negative error code on failure, zero on success. 279 * Returns a negative error code on failure, zero on success.
280 */ 280 */
281int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 281int pci_mmap_page_range(struct pci_dev *dev, int bar, struct vm_area_struct *vma,
282 enum pci_mmap_state mmap_state, int write_combine) 282 enum pci_mmap_state mmap_state, int write_combine)
283{ 283{
284 resource_size_t offset = 284 resource_size_t offset =
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index f6325fa657fb..f189502041a6 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -58,7 +58,8 @@ void pci_resource_to_user(const struct pci_dev *dev, int bar,
58 *end = rsrc->start + size; 58 *end = rsrc->start + size;
59} 59}
60 60
61int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 61int pci_mmap_page_range(struct pci_dev *dev, int bar,
62 struct vm_area_struct *vma,
62 enum pci_mmap_state mmap_state, int write_combine) 63 enum pci_mmap_state mmap_state, int write_combine)
63{ 64{
64 unsigned long prot; 65 unsigned long prot;
diff --git a/arch/mn10300/unit-asb2305/pci-asb2305.c b/arch/mn10300/unit-asb2305/pci-asb2305.c
index b7ab8378964c..4abbbd54ac7d 100644
--- a/arch/mn10300/unit-asb2305/pci-asb2305.c
+++ b/arch/mn10300/unit-asb2305/pci-asb2305.c
@@ -211,7 +211,8 @@ void __init pcibios_resource_survey(void)
211 pcibios_allocate_resources(1); 211 pcibios_allocate_resources(1);
212} 212}
213 213
214int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 214int pci_mmap_page_range(struct pci_dev *dev, int bar,
215 struct vm_area_struct *vma,
215 enum pci_mmap_state mmap_state, int write_combine) 216 enum pci_mmap_state mmap_state, int write_combine)
216{ 217{
217 unsigned long prot; 218 unsigned long prot;
diff --git a/arch/parisc/kernel/pci.c b/arch/parisc/kernel/pci.c
index 0903c6abd7a4..653877553acd 100644
--- a/arch/parisc/kernel/pci.c
+++ b/arch/parisc/kernel/pci.c
@@ -228,7 +228,8 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
228} 228}
229 229
230 230
231int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 231int pci_mmap_page_range(struct pci_dev *dev, int bar,
232 struct vm_area_struct *vma,
232 enum pci_mmap_state mmap_state, int write_combine) 233 enum pci_mmap_state mmap_state, int write_combine)
233{ 234{
234 unsigned long prot; 235 unsigned long prot;
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index ffda24a38dda..6dda4a20de6e 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -513,7 +513,8 @@ pgprot_t pci_phys_mem_access_prot(struct file *file,
513 * 513 *
514 * Returns a negative error code on failure, zero on success. 514 * Returns a negative error code on failure, zero on success.
515 */ 515 */
516int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 516int pci_mmap_page_range(struct pci_dev *dev, int bar,
517 struct vm_area_struct *vma,
517 enum pci_mmap_state mmap_state, int write_combine) 518 enum pci_mmap_state mmap_state, int write_combine)
518{ 519{
519 resource_size_t offset = 520 resource_size_t offset =
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c
index 84563e39a5b8..c8b36b7ceb98 100644
--- a/arch/sh/drivers/pci/pci.c
+++ b/arch/sh/drivers/pci/pci.c
@@ -269,7 +269,8 @@ void __ref pcibios_report_status(unsigned int status_mask, int warn)
269 } 269 }
270} 270}
271 271
272int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 272int pci_mmap_page_range(struct pci_dev *dev, int bar,
273 struct vm_area_struct *vma,
273 enum pci_mmap_state mmap_state, int write_combine) 274 enum pci_mmap_state mmap_state, int write_combine)
274{ 275{
275 /* 276 /*
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index 015e55a7495d..7eceaa10836f 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -862,9 +862,9 @@ static void __pci_mmap_set_pgprot(struct pci_dev *dev, struct vm_area_struct *vm
862 * 862 *
863 * Returns a negative error code on failure, zero on success. 863 * Returns a negative error code on failure, zero on success.
864 */ 864 */
865int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 865int pci_mmap_page_range(struct pci_dev *dev, int bar,
866 enum pci_mmap_state mmap_state, 866 struct vm_area_struct *vma,
867 int write_combine) 867 enum pci_mmap_state mmap_state, int write_combine)
868{ 868{
869 int ret; 869 int ret;
870 870
diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
index 62137d13c6f9..1b438857e91f 100644
--- a/arch/unicore32/kernel/pci.c
+++ b/arch/unicore32/kernel/pci.c
@@ -357,7 +357,8 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
357 return 0; 357 return 0;
358} 358}
359 359
360int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 360int pci_mmap_page_range(struct pci_dev *dev, int bar,
361 struct vm_area_struct *vma,
361 enum pci_mmap_state mmap_state, int write_combine) 362 enum pci_mmap_state mmap_state, int write_combine)
362{ 363{
363 unsigned long phys; 364 unsigned long phys;
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 0a9f2caf358f..8ca5e5d9f251 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -411,7 +411,8 @@ static const struct vm_operations_struct pci_mmap_ops = {
411 .access = generic_access_phys, 411 .access = generic_access_phys,
412}; 412};
413 413
414int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 414int pci_mmap_page_range(struct pci_dev *dev, int bar,
415 struct vm_area_struct *vma,
415 enum pci_mmap_state mmap_state, int write_combine) 416 enum pci_mmap_state mmap_state, int write_combine)
416{ 417{
417 unsigned long prot; 418 unsigned long prot;
diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c
index 5b73fc2f076c..903963ee495d 100644
--- a/arch/xtensa/kernel/pci.c
+++ b/arch/xtensa/kernel/pci.c
@@ -343,7 +343,8 @@ __pci_mmap_make_offset(struct pci_dev *dev, struct vm_area_struct *vma,
343 * 343 *
344 * Returns a negative error code on failure, zero on success. 344 * Returns a negative error code on failure, zero on success.
345 */ 345 */
346int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 346int pci_mmap_page_range(struct pci_dev *dev, int bar,
347 struct vm_area_struct *vma,
347 enum pci_mmap_state mmap_state, 348 enum pci_mmap_state mmap_state,
348 int write_combine) 349 int write_combine)
349{ 350{
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 534844df8bf5..bfd9efe637c4 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1041,7 +1041,7 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
1041 pci_resource_to_user(pdev, bar, res, &start, &end); 1041 pci_resource_to_user(pdev, bar, res, &start, &end);
1042 vma->vm_pgoff += start >> PAGE_SHIFT; 1042 vma->vm_pgoff += start >> PAGE_SHIFT;
1043 mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io; 1043 mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io;
1044 return pci_mmap_page_range(pdev, vma, mmap_type, write_combine); 1044 return pci_mmap_page_range(pdev, bar, vma, mmap_type, write_combine);
1045} 1045}
1046 1046
1047static int pci_mmap_resource_uc(struct file *filp, struct kobject *kobj, 1047static int pci_mmap_resource_uc(struct file *filp, struct kobject *kobj,
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
index 45e5cf7e9193..098360d7ff81 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -262,7 +262,7 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
262 else 262 else
263 return -EINVAL; 263 return -EINVAL;
264 } 264 }
265 ret = pci_mmap_page_range(dev, vma, 265 ret = pci_mmap_page_range(dev, i, vma,
266 fpriv->mmap_state, write_combine); 266 fpriv->mmap_state, write_combine);
267 if (ret < 0) 267 if (ret < 0)
268 return ret; 268 return ret;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 590cfcf6acf5..7173a677d6dd 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1630,7 +1630,8 @@ static inline int pci_get_new_domain_nr(void) { return -ENOSYS; }
1630 * Architectures provide this function if they set HAVE_PCI_MMAP, and 1630 * Architectures provide this function if they set HAVE_PCI_MMAP, and
1631 * it accepts the 'write_combine' argument when arch_can_pci_mmap_wc() 1631 * it accepts the 'write_combine' argument when arch_can_pci_mmap_wc()
1632 * evaluates to nonzero. */ 1632 * evaluates to nonzero. */
1633int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, 1633int pci_mmap_page_range(struct pci_dev *pdev, int bar,
1634 struct vm_area_struct *vma,
1634 enum pci_mmap_state mmap_state, int write_combine); 1635 enum pci_mmap_state mmap_state, int write_combine);
1635 1636
1636#ifndef arch_can_pci_mmap_wc 1637#ifndef arch_can_pci_mmap_wc