Skip to content

Commit

Permalink
[SUNLANCE]: Fix probing problem.
Browse files Browse the repository at this point in the history
The current probe table causes ledma and lebuffer
"le" devices to get probed twice which is not what
we want.

Match just "le" and look directly at the parent to get the correct
top-level node information.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Krzysztof Helt authored and David S. Miller committed Aug 30, 2006
1 parent 47f2c36 commit 404dda8
Showing 1 changed file with 11 additions and 16 deletions.
27 changes: 11 additions & 16 deletions drivers/net/sunlance.c
Original file line number Diff line number Diff line change
Expand Up @@ -1566,20 +1566,21 @@ static int __exit sunlance_sun4_remove(void)
static int __devinit sunlance_sbus_probe(struct of_device *dev, const struct of_device_id *match)
{
struct sbus_dev *sdev = to_sbus_device(&dev->dev);
struct device_node *dp = dev->node;
int err;

if (!strcmp(dp->name, "le")) {
err = sparc_lance_probe_one(sdev, NULL, NULL);
} else if (!strcmp(dp->name, "ledma")) {
struct sbus_dma *ledma = find_ledma(sdev);
if (sdev->parent) {
struct of_device *parent = &sdev->parent->ofdev;

err = sparc_lance_probe_one(sdev->child, ledma, NULL);
} else {
BUG_ON(strcmp(dp->name, "lebuffer"));
if (!strcmp(parent->node->name, "ledma")) {
struct sbus_dma *ledma = find_ledma(to_sbus_device(&parent->dev));

err = sparc_lance_probe_one(sdev->child, NULL, sdev);
}
err = sparc_lance_probe_one(sdev, ledma, NULL);
} else if (!strcmp(parent->node->name, "lebuffer")) {
err = sparc_lance_probe_one(sdev, NULL, to_sbus_device(&parent->dev));
} else
err = sparc_lance_probe_one(sdev, NULL, NULL);
} else
err = sparc_lance_probe_one(sdev, NULL, NULL);

return err;
}
Expand All @@ -1604,12 +1605,6 @@ static struct of_device_id sunlance_sbus_match[] = {
{
.name = "le",
},
{
.name = "ledma",
},
{
.name = "lebuffer",
},
{},
};

Expand Down

0 comments on commit 404dda8

Please sign in to comment.