ks8851: Fix freed memory reference in probe failure

If ks8851_probe fails, deregister the regulator devices,
which are part of the ks structure, before freeing the
network device rather than dereferencing a freed pointer.
The regulator devices need to be deregistered before the
network device is freed because the private pointer (ks)
is part of the ndev structure.

Change-Id: Id8e7b25e26dbae2c038f6f018931fc25efbf5cff
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c
index 74b6ac2..e338aed 100644
--- a/drivers/net/ks8851.c
+++ b/drivers/net/ks8851.c
@@ -1723,8 +1723,6 @@
 
 err_id:
 err_irq:
-	free_netdev(ndev);
-
 	if (!IS_ERR(ks->vdd_io)) {
 		regulator_disable(ks->vdd_io);
 		regulator_put(ks->vdd_io);
@@ -1735,6 +1733,8 @@
 		regulator_put(ks->vdd_phy);
 	}
 
+	free_netdev(ndev);
+
 	if (pdata && gpio_is_valid(pdata->rst_gpio))
 		gpio_free(pdata->rst_gpio);