From: Thierry Reding <treding@xxxxxxxxxx> A common pattern exists among several PCI host controller drivers. Some of the resources that they support are optional, and the way that the drivers handle these resources is by propagating -EPROBE_DEFER and keep going without the resource otherwise. However, there can be several reasons for failing to obtain a resource (e.g. out of memory). Currently all of these reasons will cause the drivers to consider the optional resource to not be there. However, if the resource was in fact required in the specific case and requesting it failed because of some other reason, the drivers would still happily continue and cause potentially hard to find problems. Instead of rolling all error codes into one, reverse the check and only handle -ENODEV as meaning "resource was not specified". Fatal errors in that case will cause the driver to fail to probe rather than continuing as if nothing had happened. Changes in v2: - add Rockchip PCI patch which was previously separate - addressed Bjorn's comments regarding commit message - collected Reviewed-by, Tested-by and Acked-by tags Thierry Thierry Reding (6): PCI: rockchip: Propagate errors for optional regulators PCI: exynos: Propagate errors for optional PHYs PCI: imx6: Propagate errors for optional regulators PCI: armada8x: Propagate errors for optional PHYs PCI: histb: Propagate errors for optional regulators PCI: iproc: Propagate errors for optional PHYs drivers/pci/controller/dwc/pci-exynos.c | 2 +- drivers/pci/controller/dwc/pci-imx6.c | 4 ++-- drivers/pci/controller/dwc/pcie-armada8k.c | 7 +++---- drivers/pci/controller/dwc/pcie-histb.c | 4 ++-- drivers/pci/controller/pcie-iproc-platform.c | 9 +++------ drivers/pci/controller/pcie-rockchip-host.c | 16 ++++++++-------- 6 files changed, 19 insertions(+), 23 deletions(-) -- 2.22.0