diff options
author | David Woodhouse <dwmw@amazon.co.uk> | 2017-04-12 08:25:58 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-04-20 09:47:47 -0400 |
commit | f66e225828c1b046c7db1db65b0dd2d135f6a2da (patch) | |
tree | 69056a22a4d9afcacdc99779741f65f78f0d6cc0 | |
parent | dca40b186b757c7f9a05f870f69e0dfaeca59d7b (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.c | 3 | ||||
-rw-r--r-- | arch/cris/arch-v32/drivers/pci/bios.c | 3 | ||||
-rw-r--r-- | arch/ia64/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/microblaze/pci/pci-common.c | 2 | ||||
-rw-r--r-- | arch/mips/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/mn10300/unit-asb2305/pci-asb2305.c | 3 | ||||
-rw-r--r-- | arch/parisc/kernel/pci.c | 3 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 3 | ||||
-rw-r--r-- | arch/sh/drivers/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/sparc/kernel/pci.c | 6 | ||||
-rw-r--r-- | arch/unicore32/kernel/pci.c | 3 | ||||
-rw-r--r-- | arch/x86/pci/i386.c | 3 | ||||
-rw-r--r-- | arch/xtensa/kernel/pci.c | 3 | ||||
-rw-r--r-- | drivers/pci/pci-sysfs.c | 2 | ||||
-rw-r--r-- | drivers/pci/proc.c | 2 | ||||
-rw-r--r-- | include/linux/pci.h | 3 |
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 | ||
600 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 600 | int 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 | ||
17 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 17 | int 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 | ||
421 | int | 421 | int |
422 | pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, | 422 | pci_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 | */ |
281 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 281 | int 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 | ||
61 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 61 | int 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 | ||
214 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 214 | int 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 | ||
231 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 231 | int 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 | */ |
516 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 516 | int 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 | ||
272 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 272 | int 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 | */ |
865 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 865 | int 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 | ||
360 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 360 | int 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 | ||
414 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 414 | int 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 | */ |
346 | int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 346 | int 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 | ||
1047 | static int pci_mmap_resource_uc(struct file *filp, struct kobject *kobj, | 1047 | static 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. */ |
1633 | int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, | 1633 | int 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 |