diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 1779582fb5007cd1ba0b054e78c545d0d4f644c3..b1d80c1d7a691a0fe7c1841f76455775b30ee7c0 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1841,6 +1841,8 @@ int pci_setup_device(struct pci_dev *dev)
 
 	pci_set_of_node(dev);
 	pci_set_acpi_fwnode(dev);
+	if (dev->dev.fwnode && !fwnode_device_is_available(dev->dev.fwnode))
+		return -ENODEV;
 
 	pci_dev_assign_slot(dev);