net: dsa: slave: chip data is optional, don't dereference NULL
authorAndrew Lunn <andrew@lunn.ch>
Sat, 4 Jun 2016 19:16:52 +0000 (21:16 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 4 Jun 2016 21:29:52 +0000 (14:29 -0700)
The new binding does not make use of dsa_chip_data, a.k.a cd.  When
retrieving the size of the EEPROM attached to a switch, don't assume
there is a cd attached to the switch structure.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c

index 152436cdab30ac351b0e24d8db9148940ceb3496..135a91706755405f132200ad1ae29247dc35ade1 100644 (file)
@@ -615,7 +615,7 @@ static int dsa_slave_get_eeprom_len(struct net_device *dev)
        struct dsa_slave_priv *p = netdev_priv(dev);
        struct dsa_switch *ds = p->parent;
 
-       if (ds->cd->eeprom_len)
+       if (ds->cd && ds->cd->eeprom_len)
                return ds->cd->eeprom_len;
 
        if (ds->drv->get_eeprom_len)