summaryrefslogtreecommitdiffstats
path: root/net/dsa
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2015-03-05 21:35:05 +0100
committerDavid S. Miller <davem@davemloft.net>2015-03-06 06:18:20 +0100
commitb324c07ac4771a6ac8f57a3e1897e1b36b0a9ff0 (patch)
tree06bca8330ded3688b456c19a3f0a52b86e714188 /net/dsa
parentnet: dsa: update dsa_of_{probe, remove} to use a device pointer (diff)
downloadlinux-b324c07ac4771a6ac8f57a3e1897e1b36b0a9ff0.tar.xz
linux-b324c07ac4771a6ac8f57a3e1897e1b36b0a9ff0.zip
net: dsa: allow deferred probing
In preparation for allowing a different model to register DSA switches, update dsa_of_probe() and dsa_probe() to return -EPROBE_DEFER where appropriate. Failure to find a phandle or Device Tree property is still fatal, but looking up the internal device structure associated with a Device Tree node is something that might need to be delayed based on driver probe ordering. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa')
-rw-r--r--net/dsa/dsa.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index d804364150bd..79879d01488a 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -583,7 +583,7 @@ static int dsa_of_probe(struct device *dev)
mdio_bus = of_mdio_find_bus(mdio);
if (!mdio_bus)
- return -EINVAL;
+ return -EPROBE_DEFER;
ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
if (!ethernet)
@@ -591,7 +591,7 @@ static int dsa_of_probe(struct device *dev)
ethernet_dev = of_find_device_by_node(ethernet);
if (!ethernet_dev)
- return -ENODEV;
+ return -EPROBE_DEFER;
pd = kzalloc(sizeof(*pd), GFP_KERNEL);
if (!pd)
@@ -718,7 +718,7 @@ static int dsa_probe(struct platform_device *pdev)
dev = dev_to_net_device(pd->netdev);
if (dev == NULL) {
- ret = -EINVAL;
+ ret = -EPROBE_DEFER;
goto out;
}