--- vrfc
+++ v3
@@ -22,13 +22,15 @@
/proc/device-tree//event-sources/ibm,hvpipe-msg-events property.
Signed-off-by: Haren Myneni <haren@linux.ibm.com>
+Reviewed-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
+Tested-by: Shashank MS <shashank.gowda@in.ibm.com>
---
- arch/powerpc/platforms/pseries/papr-hvpipe.c | 144 ++++++++++++++++++-
+ arch/powerpc/platforms/pseries/papr-hvpipe.c | 146 ++++++++++++++++++-
arch/powerpc/platforms/pseries/papr-hvpipe.h | 14 ++
- 2 files changed, 153 insertions(+), 5 deletions(-)
+ 2 files changed, 155 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/papr-hvpipe.c b/arch/powerpc/platforms/pseries/papr-hvpipe.c
-index b283837dcefc..ebccd6a70ab6 100644
+index 1e7636c0b275..0969efb39d95 100644
--- a/arch/powerpc/platforms/pseries/papr-hvpipe.c
+++ b/arch/powerpc/platforms/pseries/papr-hvpipe.c
@@ -22,6 +22,11 @@
@@ -37,13 +39,13 @@
+static unsigned char hvpipe_ras_buf[RTAS_ERROR_LOG_MAX];
+static struct workqueue_struct *papr_hvpipe_wq;
-+static struct work_struct *papr_hvpipe_work;
++static struct work_struct *papr_hvpipe_work = NULL;
+static int hvpipe_check_exception_token;
+
/*
* New PowerPC FW provides support for partitions and various
* sources (Ex: remote hardware management console (HMC)) to
-@@ -545,6 +550,117 @@ static long papr_hvpipe_dev_ioctl(struct file *filp, unsigned int ioctl,
+@@ -556,6 +561,117 @@ static long papr_hvpipe_dev_ioctl(struct file *filp, unsigned int ioctl,
return ret;
}
@@ -161,7 +163,7 @@
static const struct file_operations papr_hvpipe_ops = {
.unlocked_ioctl = papr_hvpipe_dev_ioctl,
};
-@@ -567,12 +683,30 @@ static int __init papr_hvpipe_init(void)
+@@ -578,12 +694,32 @@ static int __init papr_hvpipe_init(void)
!rtas_function_implemented(RTAS_FN_IBM_RECEIVE_HVPIPE_MSG))
return -ENODEV;
@@ -182,18 +184,20 @@
}
- return 0;
-+ if (!enable_hvpipe_IRQ()) {
++ ret = enable_hvpipe_IRQ();
++ if (!ret)
+ ret = misc_register(&papr_hvpipe_dev);
-+ if (!ret) {
-+ pr_info("hvpipe feature is enabled\n");
-+ return 0;
-+ } else
-+ pr_err("misc-dev registration failed %d\n", ret);
-+ }
++
++ if (!ret) {
++ pr_info("hvpipe feature is enabled\n");
++ return 0;
++ } else
++ pr_err("hvpipe feature is not enabled %d\n", ret);
+
+ destroy_workqueue(papr_hvpipe_wq);
+out:
+ kfree(papr_hvpipe_work);
++ papr_hvpipe_work = NULL;
+ return ret;
}
machine_device_initcall(pseries, papr_hvpipe_init);
@@ -221,6 +225,6 @@
+
#endif /* _PAPR_HVPIPE_H */
--
-2.43.5
-
-
+2.50.1
+
+