From f6b594aba78a1b1a2f260660508beaf98159e933 Mon Sep 17 00:00:00 2001 From: Jon Smirl Date: Fri, 29 Jul 2005 12:16:17 -0700 Subject: [PATCH] --- yaml --- r: 5475 b: refs/heads/master c: 761a3ac08c63718dacde12aaf0ec6d6760e8c2b7 h: refs/heads/master i: 5473: 0babf51ec72abb7cdaae296cdbceb9644a24ac15 5471: 0f5e30b03be8505ec152626f90c34a7fe24245db v: v3 --- [refs] | 2 +- trunk/drivers/pci/rom.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6be5d54b852d..e331c8446c17 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e96e2f148060330f6178b502574dcb81eb7318bf +refs/heads/master: 761a3ac08c63718dacde12aaf0ec6d6760e8c2b7 diff --git a/trunk/drivers/pci/rom.c b/trunk/drivers/pci/rom.c index 838575e3fac6..713c78f3a65d 100644 --- a/trunk/drivers/pci/rom.c +++ b/trunk/drivers/pci/rom.c @@ -125,7 +125,9 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size) image += readw(pds + 16) * 512; } while (!last_image); - *size = image - rom; + /* never return a size larger than the PCI resource window */ + /* there are known ROMs that get the size wrong */ + *size = min((size_t)(image - rom), *size); return rom; }