Merge LA.UM.9.12.R2.10.00.00.685.014 via branch 'qcom-msm-4.19-7250' into android-msm-pixel-4.19

Bug: 158429902
Signed-off-by: lucaswei <lucaswei@google.com>
Change-Id: I055cafe491df95918248801595c73e3de3cb37ad
diff --git a/drivers/rmnet/shs/rmnet_shs_wq.c b/drivers/rmnet/shs/rmnet_shs_wq.c
index f300c22..6b2a31e 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq.c
+++ b/drivers/rmnet/shs/rmnet_shs_wq.c
@@ -2149,7 +2149,8 @@
 		return;
 	}
 
-	rmnet_shs_wq_mem_init();
+	if( rmnet_shs_wq_mem_init() )
+		rmnet_shs_wq_genl_deinit();
 
 	trace_rmnet_shs_wq_high(RMNET_SHS_WQ_INIT, RMNET_SHS_WQ_INIT_START,
 				0xDEF, 0xDEF, 0xDEF, 0xDEF, NULL, NULL);
diff --git a/drivers/rmnet/shs/rmnet_shs_wq_mem.c b/drivers/rmnet/shs/rmnet_shs_wq_mem.c
index e914d78..7c5dbad 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq_mem.c
+++ b/drivers/rmnet/shs/rmnet_shs_wq_mem.c
@@ -953,13 +953,19 @@
 }
 
 /* Creates the proc folder and files for shs shared memory */
-void rmnet_shs_wq_mem_init(void)
+int rmnet_shs_wq_mem_init(void)
 {
 	kuid_t shs_uid;
 	kgid_t shs_gid;
 
 	shs_proc_dir = proc_mkdir("shs", NULL);
 
+	if(!shs_proc_dir)
+	{
+          rm_err("%s", "SHS_MEM: shs_proc_dir returned as NULL\n");
+	  return -1;
+	}
+
 	shs_uid = make_kuid(&init_user_ns, 1001);
 	shs_gid = make_kgid(&init_user_ns, 1001);
 
@@ -977,6 +983,7 @@
 	ssflow_shared = NULL;
 	netdev_shared = NULL;
 	rmnet_shs_wq_ep_unlock_bh();
+	return 0;
 }
 
 /* Remove shs files and folders from proc fs */
diff --git a/drivers/rmnet/shs/rmnet_shs_wq_mem.h b/drivers/rmnet/shs/rmnet_shs_wq_mem.h
index e955606..374a556 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq_mem.h
+++ b/drivers/rmnet/shs/rmnet_shs_wq_mem.h
@@ -107,7 +107,7 @@
 void rmnet_shs_wq_mem_update_cached_sorted_ss_flows(struct list_head *ss_flows);
 void rmnet_shs_wq_mem_update_cached_netdevs(void);
 
-void rmnet_shs_wq_mem_init(void);
+int rmnet_shs_wq_mem_init(void);
 
 void rmnet_shs_wq_mem_deinit(void);