NIC address conflicts on 64K pagesize when using multiple NICs,
as system will mmap 64K pagesize for NIC,
but dev->mem_resource[i].len is 16K.

Signed-off-by: Beard-627 <dengxiaof...@huawei.com>
Signed-off-by: Eric wang <seven.wan...@huawei.com>
Acked-by: Wei Hu <xavier.hu...@huawei.com>
Acked-by: Min Hu <humi...@huawei.com>
---
 drivers/bus/pci/linux/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index 
43debaa..afaa68d 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -201,6 +201,11 @@
                if (flags & IORESOURCE_MEM) {
                        dev->mem_resource[i].phys_addr = phys_addr;
                        dev->mem_resource[i].len = end_addr - phys_addr + 1;
+                       if (dev->mem_resource[i].len <
+                               (unsigned int)getpagesize())
+
+                               dev->mem_resource[i].len =
+                                       (unsigned int)getpagesize();
                        /* not mapped for now */
                        dev->mem_resource[i].addr = NULL;
                }
--
1.8.3.1

Reply via email to