Net: DSA: Fix checking for get_phy_flags function
authorAndrew Lunn <andrew@lunn.ch>
Sun, 19 Oct 2014 14:41:47 +0000 (16:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Oct 2014 16:46:31 +0000 (12:46 -0400)
The check for the presence or not of the optional switch function
get_phy_flags() called the function, rather than checked to see if it
is a NULL pointer. This causes a derefernce of a NULL pointer on all
switch chips except the sf2, the only switch to implement this call.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Fixes: 6819563e646a ("net: dsa: allow switch drivers to specify phy_device::dev_flags")
Cc: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c

index a851e9f1411807f849567623483b56c4479695a0..6d1817449c3675bb4ddd6d47a16ea017a5213e0d 100644 (file)
@@ -599,7 +599,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent,
        netif_carrier_off(slave_dev);
 
        if (p->phy != NULL) {
-               if (ds->drv->get_phy_flags(ds, port))
+               if (ds->drv->get_phy_flags)
                        p->phy->dev_flags |= ds->drv->get_phy_flags(ds, port);
 
                phy_attach(slave_dev, dev_name(&p->phy->dev),