|
@@ -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.
|
|
* True size is important if the ROM is going to be copied.
|
|
*/
|
|
*/
|
|
*size = pci_get_rom_size(pdev, rom, *size);
|
|
*size = pci_get_rom_size(pdev, rom, *size);
|
|
|
|
+ if (!*size)
|
|
|
|
+ goto invalid_rom;
|
|
|
|
+
|
|
return rom;
|
|
return rom;
|
|
|
|
|
|
|
|
+invalid_rom:
|
|
|
|
+ iounmap(rom);
|
|
err_ioremap:
|
|
err_ioremap:
|
|
/* restore enable if ioremap fails */
|
|
/* restore enable if ioremap fails */
|
|
if (!(res->flags & IORESOURCE_ROM_ENABLE))
|
|
if (!(res->flags & IORESOURCE_ROM_ENABLE))
|