Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 191562
b: refs/heads/master
c: f73a2b0
h: refs/heads/master
v: v3
  • Loading branch information
Heiko Carstens authored and Martin Schwidefsky committed May 17, 2010
1 parent bc21345 commit 9342800
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 33 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 86f2552bbd0e17b19bb5e9881042533eaea553c7
refs/heads/master: f73a2b03c59b95a3ee8eebcc127350c77c950e87
3 changes: 1 addition & 2 deletions trunk/drivers/s390/char/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,12 @@ config VMLOGRDR
This driver depends on the IUCV support driver.

config VMCP
tristate "Support for the z/VM CP interface (VM only)"
bool "Support for the z/VM CP interface"
depends on S390
help
Select this option if you want to be able to interact with the control
program on z/VM


config MONREADER
tristate "API for reading z/VM monitor service records"
depends on IUCV
Expand Down
38 changes: 8 additions & 30 deletions trunk/drivers/s390/char/vmcp.c
Original file line number Diff line number Diff line change
@@ -1,35 +1,27 @@
/*
* Copyright IBM Corp. 2004,2007
* Copyright IBM Corp. 2004,2010
* Interface implementation for communication with the z/VM control program
* Author(s): Christian Borntraeger <borntraeger@de.ibm.com>
*
* Author(s): Christian Borntraeger <borntraeger@de.ibm.com>
*
* z/VMs CP offers the possibility to issue commands via the diagnose code 8
* this driver implements a character device that issues these commands and
* returns the answer of CP.
*
* The idea of this driver is based on cpint from Neale Ferguson and #CP in CMS
*/

#define KMSG_COMPONENT "vmcp"
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt

#include <linux/fs.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/miscdevice.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <asm/compat.h>
#include <asm/cpcmd.h>
#include <asm/debug.h>
#include <asm/uaccess.h>
#include "vmcp.h"

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Christian Borntraeger <borntraeger@de.ibm.com>");
MODULE_DESCRIPTION("z/VM CP interface");

static debug_info_t *vmcp_debug;

static int vmcp_open(struct inode *inode, struct file *file)
Expand Down Expand Up @@ -197,11 +189,8 @@ static int __init vmcp_init(void)
{
int ret;

if (!MACHINE_IS_VM) {
pr_warning("The z/VM CP interface device driver cannot be "
"loaded without z/VM\n");
return -ENODEV;
}
if (!MACHINE_IS_VM)
return 0;

vmcp_debug = debug_register("vmcp", 1, 1, 240);
if (!vmcp_debug)
Expand All @@ -214,19 +203,8 @@ static int __init vmcp_init(void)
}

ret = misc_register(&vmcp_dev);
if (ret) {
if (ret)
debug_unregister(vmcp_debug);
return ret;
}

return 0;
}

static void __exit vmcp_exit(void)
{
misc_deregister(&vmcp_dev);
debug_unregister(vmcp_debug);
return ret;
}

module_init(vmcp_init);
module_exit(vmcp_exit);
device_initcall(vmcp_init);

0 comments on commit 9342800

Please sign in to comment.