[S390] tape class return value handling.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 7 Aug 2006 15:00:28 +0000 (17:00 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 7 Aug 2006 15:00:28 +0000 (17:00 +0200)
Without this patch register_tape_dev() will always fail, but might
return a value that is not an error number. This will lead to accesses
to already freed memory areas...

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/tape_class.c

index 643b6d0785636783538d7d504c129c588bee3a2f..56b87618b100c1d33b8829d3f9bd184f7c80f7b6 100644 (file)
@@ -76,7 +76,7 @@ struct tape_class_device *register_tape_dev(
                                device,
                                "%s", tcd->device_name
                        );
-       rc = PTR_ERR(tcd->class_device);
+       rc = IS_ERR(tcd->class_device) ? PTR_ERR(tcd->class_device) : 0;
        if (rc)
                goto fail_with_cdev;
        rc = sysfs_create_link(