net: mscc: ocelot: error checking when calling ocelot_init()
ocelot_init() allocates memory, resets the switch and polls for a status register, things which can fail. Stop probing the driver in that case, and propagate the error result. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c9d4b2cf16
commit
d1cc0e9320
|
@ -585,7 +585,10 @@ static int felix_setup(struct dsa_switch *ds)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
ocelot_init(ocelot);
|
||||
err = ocelot_init(ocelot);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (ocelot->ptp) {
|
||||
err = ocelot_init_timestamp(ocelot, &ocelot_ptp_clock_info);
|
||||
if (err) {
|
||||
|
|
|
@ -1002,7 +1002,10 @@ static int mscc_ocelot_probe(struct platform_device *pdev)
|
|||
ocelot->vcap_is2_actions = vsc7514_vcap_is2_actions;
|
||||
ocelot->vcap = vsc7514_vcap_props;
|
||||
|
||||
ocelot_init(ocelot);
|
||||
err = ocelot_init(ocelot);
|
||||
if (err)
|
||||
goto out_put_ports;
|
||||
|
||||
if (ocelot->ptp) {
|
||||
err = ocelot_init_timestamp(ocelot, &ocelot_ptp_clock_info);
|
||||
if (err) {
|
||||
|
|
Loading…
Reference in New Issue