Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a405f191 authored by Changbin Du's avatar Changbin Du Committed by Bjorn Helgaas
Browse files

PCI: Fail pci_map_rom() if the option ROM is invalid



If we detect a invalid PCI option ROM (e.g., invalid ROM header signature),
we should unmap it immediately and fail. It doesn't make any sense to
return a mapped area with size of 0.

I have seen this case on Intel GVTg vGPU, which has no VBIOS. It will not
cause a real problem, but we should skip it as early as possible.

Signed-off-by: default avatarChangbin Du <changbin.du@intel.com>
[bhelgaas: split non-functional change into separate patch]
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent a48a687d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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))