diff --git a/drivers/platform/msm/ipa/ipa_utils.c b/drivers/platform/msm/ipa/ipa_utils.c
index dca797ceff00ff47bd95e11905a63c1d733ada97..9d082700ff326782e1ae3e111f148834b6ef2dad 100644
--- a/drivers/platform/msm/ipa/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_utils.c
@@ -3606,3 +3606,15 @@ fail_alloc_pkt_init:
 fail_alloc_desc:
 	return res;
 }
+
+/**
+ * ipa_is_ready() - check if IPA module was initialized
+ * successfully
+ *
+ * Return value: true for yes; false for no
+ */
+bool ipa_is_ready(void)
+{
+	return (ipa_ctx != NULL) ? true : false;
+}
+EXPORT_SYMBOL(ipa_is_ready);
diff --git a/include/linux/ipa.h b/include/linux/ipa.h
index 96278509076c0e882722fd9dc318e974e94c4056..fb95905a71bdfc77f3d91302b735515e68f09103 100644
--- a/include/linux/ipa.h
+++ b/include/linux/ipa.h
@@ -953,6 +953,8 @@ int ipa_remove_interrupt_handler(enum ipa_irq_type interrupt);
 
 int ipa_get_ep_mapping(enum ipa_client_type client);
 
+bool ipa_is_ready(void);
+
 #else /* CONFIG_IPA */
 
 /*
@@ -1421,6 +1423,11 @@ static inline int ipa_get_ep_mapping(enum ipa_client_type client)
 {
 	return -EPERM;
 }
+
+static inline bool ipa_is_ready(void)
+{
+	return false;
+}
 #endif /* CONFIG_IPA*/
 
 #endif /* _IPA_H_ */