[S390] Fix smsgiucv init on no iucv machines
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 5 Nov 2007 10:10:08 +0000 (11:10 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 5 Nov 2007 10:10:16 +0000 (11:10 +0100)
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>
drivers/s390/net/smsgiucv.c

index 3ccca5871fdfc002a922e17fea4c4dcb574808cb..47bb47b485814497e12201b3e4dd2f0697859504 100644 (file)
@@ -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;