summaryrefslogtreecommitdiffstats
path: root/kernel/arch/s390/hypfs/hypfs_sprp.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/s390/hypfs/hypfs_sprp.c')
-rw-r--r--kernel/arch/s390/hypfs/hypfs_sprp.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/kernel/arch/s390/hypfs/hypfs_sprp.c b/kernel/arch/s390/hypfs/hypfs_sprp.c
index f043c3c7e..c9e5c72f7 100644
--- a/kernel/arch/s390/hypfs/hypfs_sprp.c
+++ b/kernel/arch/s390/hypfs/hypfs_sprp.c
@@ -13,6 +13,7 @@
#include <linux/types.h>
#include <linux/uaccess.h>
#include <asm/compat.h>
+#include <asm/diag.h>
#include <asm/sclp.h>
#include "hypfs.h"
@@ -22,7 +23,7 @@
#define DIAG304_CMD_MAX 2
-static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd)
+static inline unsigned long __hypfs_sprp_diag304(void *data, unsigned long cmd)
{
register unsigned long _data asm("2") = (unsigned long) data;
register unsigned long _rc asm("3");
@@ -34,6 +35,12 @@ static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd)
return _rc;
}
+static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd)
+{
+ diag_stat_inc(DIAG_STAT_X304);
+ return __hypfs_sprp_diag304(data, cmd);
+}
+
static void hypfs_sprp_free(const void *data)
{
free_page((unsigned long) data);
@@ -128,14 +135,14 @@ static struct hypfs_dbfs_file hypfs_sprp_file = {
int hypfs_sprp_init(void)
{
- if (!sclp_has_sprp())
+ if (!sclp.has_sprp)
return 0;
return hypfs_dbfs_create_file(&hypfs_sprp_file);
}
void hypfs_sprp_exit(void)
{
- if (!sclp_has_sprp())
+ if (!sclp.has_sprp)
return;
hypfs_dbfs_remove_file(&hypfs_sprp_file);
}