diff --git a/drivers/pci/rom.c b/drivers/pci/rom.c index 0decf0d81cf589c0b142aef74ff3a6aac865fc9c..1f5e6af96c834307c8acf0afcab4b8b437fb3226 100644 --- a/drivers/pci/rom.c +++ b/drivers/pci/rom.c @@ -156,8 +156,13 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size) * True size is important if the ROM is going to be copied. */ *size = pci_get_rom_size(pdev, rom, *size); + if (!*size) + goto invalid_rom; + return rom; +invalid_rom: + iounmap(rom); err_ioremap: /* restore enable if ioremap fails */ if (!(res->flags & IORESOURCE_ROM_ENABLE))