asoc: codecs: Fix NULL pointer dereference in wcd9xxx slim probe

When slim device is NULL or pdata allocation fails in wcd9xxx
slim probe, devm_kfree uses slim device leading to a NULL pointer
dereference. Fix this by returning from probe in these scenarios.

Change-Id: I232661d8ba0320469bc4486e7dd82713e9b53d73
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
diff --git a/asoc/codecs/wcd9xxx-core.c b/asoc/codecs/wcd9xxx-core.c
index fd2e933..0665ba6 100644
--- a/asoc/codecs/wcd9xxx-core.c
+++ b/asoc/codecs/wcd9xxx-core.c
@@ -1284,19 +1284,15 @@
 	int ret = 0;
 	int intf_type;
 
+	if (!slim)
+		return -EINVAL;
+
 	intf_type = wcd9xxx_get_intf_type();
 
 	wcd9xxx = devm_kzalloc(&slim->dev, sizeof(struct wcd9xxx),
 				GFP_KERNEL);
-	if (!wcd9xxx) {
-		ret = -ENOMEM;
-		goto err;
-	}
-
-	if (!slim) {
-		ret = -EINVAL;
-		goto err;
-	}
+	if (!wcd9xxx)
+		return -ENOMEM;
 
 	if (intf_type == WCD9XXX_INTERFACE_TYPE_I2C) {
 		dev_dbg(&slim->dev, "%s:Codec is detected in I2C mode\n",