From: Andrew Lunn Date: Sun, 19 Oct 2014 14:41:47 +0000 (+0200) Subject: Net: DSA: Fix checking for get_phy_flags function X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=228b16cb13dfa2f77354a9b144a07e86e2dda01c;p=openwrt%2Fstaging%2Fblogic.git Net: DSA: Fix checking for get_phy_flags function 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 Fixes: 6819563e646a ("net: dsa: allow switch drivers to specify phy_device::dev_flags") Cc: Florian Fainelli Signed-off-by: David S. Miller --- diff --git a/net/dsa/slave.c b/net/dsa/slave.c index a851e9f14118..6d1817449c36 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -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),