summaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/smsgiucv.c
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2007-11-05 11:10:08 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-11-05 11:10:16 +0100
commit0fc3ddd67a6781238b038165d9dd8c1f9ba81111 (patch)
tree84058cff756c8424c4ee06edfc3db81fbee80075 /drivers/s390/net/smsgiucv.c
parent[S390] cio: use INIT_WORK to initialize struct work. (diff)
downloadlinux-0fc3ddd67a6781238b038165d9dd8c1f9ba81111.tar.xz
linux-0fc3ddd67a6781238b038165d9dd8c1f9ba81111.zip
[S390] Fix smsgiucv init on no iucv machines
smsgiucv is a driver that relies on iucv to work properly. If iucv ans smsgiucv are compiled into the kernel and run on an lpar the following scenario happens: iucv is initialized early as a subsystem. It checks for z/VM and returns with EPROTONOTSUPPORT. Later smsgiucv tries to run driver_register with iucv_bus as bus. As this bus is not initialized the driver core and list debugging issue several warnings and oopses. Solution is to let smsgiucv also check for z/VM and return EPROTONOTSUPPORT as well. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/net/smsgiucv.c')
-rw-r--r--drivers/s390/net/smsgiucv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/s390/net/smsgiucv.c b/drivers/s390/net/smsgiucv.c
index 3ccca5871fdf..47bb47b48581 100644
--- a/drivers/s390/net/smsgiucv.c
+++ b/drivers/s390/net/smsgiucv.c
@@ -148,6 +148,10 @@ static int __init smsg_init(void)
{
int rc;
+ if (!MACHINE_IS_VM) {
+ rc = -EPROTONOSUPPORT;
+ goto out;
+ }
rc = driver_register(&smsg_driver);
if (rc != 0)
goto out;